1

私が熟考してきた質問ですが、「伝統的に」モーダルビューコントローラーでは、提示された「親」ビューコントローラーは提示された子を却下する必要があります。

Apple は、提示された子は自己却下すべきではないと述べているため、私はモーダル ビュー コントローラを却下するためだけにデリゲート プロトコルを設定する傾向があります。

これはやややり過ぎに思えますが、

オブジェクティブ C はとにかく参照渡しなので、パフォーマンス コストは発生しないのではないかと思っていました。インスタンス化中に、表示中の親ビュー コントローラーの参照をモーダルに表示された子ビュー コントローラーに渡してから、メソッド コールバックを作成することはできませんでした。親が子供を捨てる?

これがばかげた質問である場合は申し訳ありません...

4

1 に答える 1

3

通常、このようなデリゲート/プロトコルをセットアップする理由は、コードの結合が大幅に少なくなるためです。ビューを後でポップオーバーまたはサブビューとして表示したいとしますか? これは必要ないと思うかもしれませんが、プロジェクトが成長するにつれて必要になるかもしれません。

親コントローラーは独自のモーダル、サブビュー、およびポップオーバーを処理するため、終了するボタンが押されたとき (またはその他のアクション) に何をすべきかを認識しています。モーダル (この場合) は、それがどのように提示されているかを必ずしも (そしてすべきではありません!) 知っているとは限りませpopViewControllerん。これは OOP を理解する上で重要な部分であり、コードをよりクリーンに保つのに役立ちます。dismissViewControllerremoveSubview

いいえ、これは私の意見では愚かな質問ではありません。

于 2013-10-31T15:07:41.653 に答える