• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:objective-cでの画面遷移の考え方)

objective-cでの画面遷移の考え方

このQ&Aのポイント
  • objective-cでの画面遷移について知りたいです。UINavigationControllerとUITabBarControllerの違いについて調べて分かったのですが、具体的にどちらを使えばいいのか迷っています。
  • 自分は1年ほどobjective-cの開発をしていますが、最初は画面遷移=UINavigationControllerのイメージが強く、最近UITabBarControllerでも画面遷移ができることを知りました。どちらの方法が一般的で適切なのか知りたいです。
  • 次の開発では階層的な構造は必要なく、5つの画面を順番に遷移するだけのものです。A→B→C→D→Aのようなループです。その場合、UITabBarControllerかUINavigationControllerのどちらを使うべきか迷っています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

(1) > UINavigationControllerは階層的な構造で画面遷移をコントロールできる。 > UITabBarControllerは並列的な構造で画面遷移をコントロールできる。 > という感じで自分の中でまとまりました。 文章で一言にまとめればその通りなのですが、(2)の質問を見る限り あまり理解されていないように思えました。 UINavigationControllerは、一言で言えば階層構造かもしれませんが、 概要レベルから詳細レベルへドリルダウンするようなケースだけでなく、 例えば、ブラウザがリンクをたどってあちこちの画面に遷移し、 戻るボタンで元の画面に戻って行くようなケースでも便利に使えます。 あまり「階層構造」という言葉にはこだわらない方がよいと思います。 (2) > 流れとしては、 > A画面→B画面→C画面→D画面→A画面に戻る のループ これって、基本的な流れが決まっているということですか? つまりA画面からB画面を飛ばしてC画面へ移行するのは ありえない感じでしょうか? であれば、それは並列ではありません。直列です。 UITabBarControllerの並列とは、各画面に順序関係がなく、 ある画面から別の画面に自由に切り替える場合に使うものです。 「戻る」という概念があるなら、UINavigationControllerの 方がなじむと思います。仕様によってはUIPageViewControllerが の方がなじむかもしれません。 あるいは、どれにもなじまないかもしれません。 その場合は、presentViewControllerとdismissViewControllerを 駆使して、自分の意図する画面遷移を作ればよい話です。

uverlotus
質問者

お礼

ご回答ありがとうございます! > (1) なんとなく理解できました! そうですね、あまり「階層構造」という言葉にこだわらない方が考えがすっきりしそうです。 > (2) 基本的な流れは決まっております。 1つだけ前後はするかと思います。 A画面からC画面など、一気に飛ばしたりは考えていません。 > 「戻る」という概念があるなら、UINavigationControllerの方がなじむと思います。 そうですよね・・・ やはり使いなれたものを使うことにします! > 仕様によってはUIPageViewControllerがの方がなじむかもしれません。 こんなものもあるんですね! 勉強してみます! 大変勉強になりました! また、質問する機会がございましたら、ご教示よろしくお願い致します!