私は iOS 開発にまったく慣れていないため、このような簡単なタスクを達成する方法をまだ管理していません。
生のxCode 4.4.1「Single View Application」プロジェクトがあります。
たとえば、4 つの画面が必要で、それぞれに他のビューに切り替えるためのボタンがあります。
画面は階層化されていません。たとえば、画面 1 から画面 2 または画面 3 に切り替えたり、画面 2 から画面 4 に切り替えたりできるようにしたい。アプリケーションの実行時 - 最初の画面が表示されますが、そのステータスは「ルート」または「メイン」ではなく、他の画面とは異なり、単なる一般的な画面です。
私の条件は次のとおりです。
- デフォルトのメイン ストーリーボード ファイルしかありません (xib ソリューションは適切ではありません)。
- ナビゲーション コントローラーや類似の事前構造化されたものを使用することに依存したくありません。
WWDC 2011 のセッション 102 で説明されているように、子コントローラーを使用してコンテナー コントローラーを何らかの方法でセットアップする必要があるように思えますが、コードを適切に記述する方法がわからないため、メインのストーリーボードと競合しません (ここSOの他の同様のトピックからxibベースのソリューションを使用しようとして2回失敗しました)。
私の経験ではまだ部分的なヒントに頼ることができないため、完全に機能する例を非常に高く評価しますが、それらも問題ありません。
これをプログラムで行うソリューション (ドラッグなどの xCode UI 機能を使用しない) が推奨されます。
ありがとう!
更新: 切り替えるときに、毎回新しい画面をインスタンス化するのではなく、既存の画面が既に存在する場合は再利用します。
更新 2: この問題のために簡略化された私の使用例:
すべての一般的なログイン/ログアウト/その他の状況を処理するための対応するモーダル画面を備えた登録画面があります。ログイン/登録手順が完了すると、アプリの「メイン」アプリ画面になります。メイン画面はユーザー固有の情報に大きく依存するため、登録画面/コントローラーをメイン画面のモーダルにしたくないので、これらの画面を階層化しないようにしたいと思います。この単純化された状況に対して、次のフローを用意することを考えています。
1) ユーザーはまだログインしていません - 登録画面が表示されます。後で、登録後。手順が完了しました- 「メイン」画面に切り替えます(これは私が気付いていない重要なポイントです。それがこの問題の理由です)。
2) ユーザーがログインし、アプリによって認識される - 「メイン」画面が表示されます。
私が説明したような登録と「メイン」画面を持つことは、「タブ付きアプリケーション」テンプレートに「タブコントローラー」機能をそのまま持つ状況を除外します (または何をしますか?)。私の場合、タブバーを完全に無効にしたいからです。ナビではありません。& ナビゲーション バー機能ですが、reg 間の遷移を実行する方法にすぎません。および「メイン」画面-これが私の質問で「手で」という意味です。
最終更新:
タブ バー コントローラーを試した後、このユース ケースでは、ナビゲーション バーを無効にした状態でナビゲーション コントローラーを使用し (タブ バー コントローラーに類似したものは見つかりませんでした)、画面の切り替えをperformSegueWithIdentifierメソッドと切り替えによって管理することになりました。 「手で」viewControllersナビゲーションスタックを操作することによってそれらを。
回答ありがとうございました!