3

iOSのUIViewControllerの変更に関するドキュメントを読んで、モーダルビューコントローラの提示とカスタムコンテナビューコントローラの内部でのやり取りの仕組みを理解しようとしました。最終的に、私ができることを望むのは、たとえそれらのコントローラのいくつかが子ビューコントローラによって提示されていても、提示されたビューコントローラのチェーンを確実に参照することです。Presented/Presenting View Controllerと親/子View Controllerの相互作用はどこに文書化されていますか?

(私はアプリケーションではなくライブラリで作業しているので、私は相互作用する階層を作成していません。異なるタイプの階層内でライブラリが正しく動作するようにしています)

私の質問は、誰かがビューコントローラを子ビューコントローラから表示しようとするとどうなりますか?提示ビューコントローラは、それが却下されるまでの相互作用「を引き継ぐ」ことを意図しているので

[childViewController presentViewController:viewController animated:YES completion:nil]; 

、それが提示要求がparentViewControllersのチェーンまで、実際にその親を楽しみにすること(またはだろうと私には理にかなってparentViewControllerのないView Controllerに到達するまで)、そのView Controllerから表示されます。さもなければ、開発者が2つの異なる子供などから現在のモーダルビューコントローラのようなことをすることができるかのように思えます。 (どのようなビューコントローラが優先されるか、など)?

さらに、上記が真であれば、それにはいくつかの意味があるようです。親View Controllerが提示されたView Controllerを表示している場合、これは何を返しますか?

親はそれを表示しているため、nilになりますか?または、このリクエストを親に転送すると、parentViewControllerとそのchildViewControllersのいずれもすべて同じ結果になりますか?

とにかく、いくつかのシナリオを実行する準備ができているサンプルプロジェクトがありますが、私が見逃したドキュメントがあれば興味がありますか?あるいは、誰かがすでにこの相互作用が起こる方法を知っていたら?

答えて

2

になら読まなければならないのですデフォルトの実装がparentViewControllerが存在するかどうかをチェックし、それが存在する場合はメッセージを親に渡します。

ドキュメントが見つかりませんでしたので、100%それに頼ることはできません。

+0

あなたと私の経験は同じです。フィードバックをお寄せいただきありがとうございます。 –

1

Dr.Touchがまさにそれで優れた記事があります。

http://www.cocoanetics.com/2012/04/containing-viewcontrollers/

それはあなたが、私はしばらく前に、コンテナビューコントローラ上で働いていたビューコントローラコンテナ

+0

コンテナビューコントローラの作成方法については良い記事ですが、残念ながら私の質問に関連するコンテンツはありません。 iOS 5以降、UIViewControllerには親子階層を設定するapiと、別のビューコントローラを「提示」するapiの2つのセットがあります。私の質問は、これらの2つのAPI間の相互作用に関連しています。このブログ記事では、これらのトピックのうちの最初のものについてのみ説明し、2番目のトピックについては何も言及していません。 –

関連する問題