私はビューコントローラのライフサイクルを理解しようとしていますが、私はawakeFromNib
について少し矛盾した記述を読んでいます。ドキュメントによれば、すべての店舗はawakeFromNib
であるが、I see that it's not always trueに設定する必要があります。電話の注文はawakeFromNib
,prepareForSegue
の間でどのようになりますか?店舗はいつ利用可能になりますか?awakeFromNibとアウトレット - awakeFromNibを呼び出すとアウトレットとセグがセットされます
0
A
答えて
0
ビューコントローラとそのビュー階層は、実行時に別々のnibファイルからロードされます。ビュー階層へのアウトレットは、ビュー・コントローラがロードされた後に実行されるビュー階層がロードされるまで接続されません。 (詳細はin this answerで説明しています)
ナビゲーションコントローラーに「マスター」ビューコントローラーがあるとします。マスタービューコントローラは、詳細ビューコントローラをプッシュするためにセグを実行します。イベントの順序は次のとおりです。
詳細ビューコントローラがそのペン先からロードされています。ストーリーボードのシーンに他のトップレベルのオブジェクトが含まれている場合は、これらもロードされます。
詳細ビューコントローラは
awakeFromNib
を受け取ります。シーン内の他のトップレベルオブジェクトへのディテールビューコントローラのアウトレットは接続されていますが、ビュー階層へのアウトレットは接続されていません。マスタービューコントローラは、
prepareForSegue
を受信し、詳細ビューコントローラを指しています。Segueは詳細コントローラをプッシュするようにナビゲーションコントローラに要求します。
ナビゲーションコントローラは、詳細ビューコントローラにそのビューを要求し、ナビゲーションコントローラのビュー階層に追加します。
詳細ビューコントローラはビュー階層nibをロードします。これにより、詳細ビューコントローラのアウトレットがビュー階層に接続されます。
ビュー階層内のすべてのオブジェクトは、
awakeFromNib
を受け取ります。詳細ビューコントローラは
viewDidLoad
を受け取ります。
関連する問題
- 1. NSWindowController awakeFromNibが2回呼び出されています
- 2. スーパークラスのawakeFromNibを呼び出す
- 3. initとawakeFromNib
- 4. iOS - NSNotificationを受信したときにUITableViewCellのawakeFromNibが呼び出される
- 5. awakeFromNibがViewControllerで呼び出されない
- 6. awakeFromNibからBundle.main.loadNibNamedを呼び出すときに、ループを無限ループにする
- 7. アウトレットとインスタンスメソッド
- 8. アウトレットとボタンが無視される
- 9. awakeFromNibを呼び出すにはどうすればいいですか?
- 10. awakeFromNibのベニフィッツ?
- 11. awakeFromNib反対ですか?
- 12. viewDidLoadを使用するタイミングとawakeFromNibを使用するタイミング
- 13. UITableViewCellアウトレット
- 14. アウトレットUICollectionViewCell
- 15. awakeFromNib()がシミュレーションメトリックで動作しません
- 16. Ember.jsアウトレットをモーダルウィンドウとしてレンダリング
- 17. `dequeueReusableCellWithIdentifier`の後にUITableViewCellとそのアウトレットが初期化されていますか?
- 18. アイテムメニューをクリックすると、現在のコンポーネント(ルータ - アウトレット)から関数を呼び出す
- 19. Monodevelop 2.8、Xcode 3.2.6、Interface Builder:アウトレットとアクション
- 20. 角2のルーティング子供とルータのアウトレット
- 21. awakeFromNibメソッドは、私のNSPersistenDocumentで
- 22. awakeFromNibでサブビューを追加する
- 23. アウトレットを作ることができません。スウィフトIOS開発
- 24. Ember.jsルーティング、アウトレット、アニメーション
- 25. 無限のアウトレット
- 26. スタティックテーブルビューセルのアウトレット
- 27. カスタマイズされたクラスのアウトレットを使用してメッセージを渡すことができない(または関数を呼び出す)
- 28. カスタムヘッダーにはnilアウトレットがあります
- 29. awakeFromNibの後にNSWindowは無しです
- 30. awakeFromNibは本当に何ですか?
UIViewのライフサイクルで 'awakeFromNib'を使用する方が一般的です。しかし、あなたが探しているのは 'prepareForSegue'、' awakeFromNib'、 'viewDidLoad'です。awakeFromNibでアウトレットにアクセスできますが、まずビューコントローラーのビューにアクセスするために必要な注意書きを読んでください。他の質問のポスターが嘆かわしい、いわゆる「ハック」。 'viewDidLoad'で設定されたView Controllerを行う方がより安全で標準的です。 – beyowulf
ありがとうございます!したがって、完全に初期化されたビューとアウトレットが必要な場合は、[self view] –
でawakeFromNibを開始します。素早く、 'print(self.view)'のようなものを言うことができます。これはやや無意味なので、 'viewDidLoad'を使うことをお勧めします。 – beyowulf