1

私はしばらくの間 iOS アプリケーションに取り組んできましたが、アプリケーション用に作成したストーリーボード ファイル/シーンで作成した View Controller を適切に使用していないと思います。

現状では、iPhone 用と iPad 用の 2 つのストーリーボード ファイルがあります。AppDelegate実装ファイルには、次のメソッドがあります。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

このメソッド内から ViewController をロードして、アプリケーションのロード プロセスを開始しました。

ストーリーボード ファイルが 2 つあるので、アプリケーションを実行しているデバイスに基づいて特定のストーリーボード ファイルをロードする条件付きコードをいくつか用意しました。

ストーリーボード ファイルをロードする適切な方法は何ですか?

ストーリー ボード ファイルを読み込んだ後、ルート ビュー コントローラーを初期化しますか?

ルート ビュー コントローラがロードされたら、ルート シーンで指定された要素をロードする必要がありますか?

ルート シーンのボタンをクリックしてルート シーンから別のシーンをロードすることを選択した場合、ルート シーンを閉じて新しいシーンをロードする必要がありますか、それとも新しいシーンは親シーンのサブクラスですか? シーン間の移行の適切な方法は何ですか?

基本的に、アプリケーションのすべてのシーンに個別のビュー コントローラーがあり、IB で各シーンに関連付けられたビュー コントローラーを指定しました。

現在、最初/ルートシーンから押すと、別のView Controllerに関連付けられている別のシーンをロードできるボタンがあります。この新しいシーンには、ルート ビュー コントローラーに戻る完了ボタンがあります。

これらの 2 つのボタンを何度もクリックして繰り返しクリックした場合、View Controller の新しいオブジェクトを作成していますか、それとも既に作成されているオブジェクトを再利用していますか?

これが複数の質問であることは知っていますが、ビューのライフサイクル、ビューコントローラーがシーンにどのように関係しているか、および最初のビューコントローラーをロードする適切な方法を理解しようとしています。推定する。

4

1 に答える 1

1

ストーリーボード ファイルをロードする適切な方法は何ですか?

クラス ナビゲーターでプロジェクトをクリックします。クリックできる一番上のもので、アプリケーションの名前が表示されています。一部の構成ファイルは、ソース コードがあった場所で開かれるため、さまざまなデバイスのストーリーボードを指定できる場所を見つける必要があります。左から2番目のタブだと思いますが、今は確認できません。iPhone に使用するストーリーボードと iPad に使用するストーリーボードを指定するだけで問題ありません。

編集:両方のストーリーボード ファイルに initailView を指定する必要もあります。これは、問題のビューが選択された状態でストーリーボードで ID インスペクタ (私が思うに) を開き、「初期ビューです」の横にあるボックスをチェックするだけで実行できます。記憶にない場合は、4 つのインスペクターすべてを試してください。それはそこにあるでしょう、私は約束します;)

シーン間の移行の適切な方法は何ですか?

ほとんどの場合、セグエを使用します。それらは絵コンテの新しいものであり、爆弾です。と呼ばれる実装できるメソッドがあります

-(void)prepareForSegue:(UIStoryboardSegue *) sender:(id)sender

セグエの識別子を確認してから、destinationViewController-properties を直接操作できます。良いチュートリアルがあります: http://www.appcoda.com/storyboards-ios-tutorial-pass-data-between-view-controller-with-segue/

ただし、セグエを使用できない場合は、モーダル ビュー以外のものを表示するために rootViewController が必要になります。基本的に、rootViewControllers はビューのスタックを管理しますが、それがどのように行われるかはあなたのビジネスではありません。UI によっては、NavigationViewController または TabBarViewController が必要になる場合があります。両方をググって、最適なものを確認してください。

ご不明な点がございましたら、お気軽にお問い合わせください。喜んでお手伝いさせていただきます。楽しむ

于 2013-01-19T00:13:33.883 に答える