0

経験があれば、助けてください。私たちの時間は厚くなっています。

私はこの構造を持っています。

AppDelegate...
...Owns a _root ViewController (its view added to window)
...what owns the _main ViewController (its view added to _root's view)
...that has a Navigation controller (its view added to _main's view)
...then different viewControllers travels in this navigation stack.

ただし、viewDidAppear/viewWillAppear メソッドは、最も内側のビューでは呼び出されません。どうしてか分かりません。

ドキュメントを読むと、「ウィンドウに追加されたとき」と書かれています。Windows で動作しますか? そうは思わないでください。私は何をすべきか?これらの CRUTIAL メソッドが呼び出されないのはなぜですか?

4

1 に答える 1

1

フレームワークでは、View Controller の入れ子は許可されていません。

はい、Apple はそれを行います (たとえば、UIViewControllers の 1 つをタブ/ナビゲーション ビュー コントローラーに埋め込むことができます) が、その方法を知っているのは Apple です。

外側のView Controllerから内側のView Controllerに正しいメッセージを転送することで、まだ可能ですが、多くの注意が必要であり、おそらく将来性がありません. 今回は助かるかもしれませんが!つまり、_root で viewWillAppear を取得した場合、それをそのサブビューコントローラーなどに転送します。すべての外観/非表示、回転、メモリ管理についてこれを正しく行うことができれば、問題ありません。

2 年が経過し、ビュー コントローラーのネストがサポートされるようになりました: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html#//apple_ref/doc/uid/TP40007457-CH18-SW6

于 2011-03-21T12:47:49.133 に答える