2011-09-05 9 views

答えて

9

で構築されたものが、ビューコントローラ可能性がApple's documentation(強調追加)あたりから、viewDidAppearおよび/またはそれがparentViewControllerを持っているかどうかをviewWillDisappearチェックを受けて、ありません:

親ビューコントローラがナビゲーションに関連する

、タブバー、およびモーダル コントローラの階層を表示します。これらの各階層では、親の が、現在のView Controllerを表示するオブジェクトです。 ビューコントローラーをスタンドアロンオブジェクトとして使用している場合(つまり、ビューコントローラー階層の一部として でない場合)、このプロパティーの値は です。

将来の参照のために適切なフラグを設定できます。

モーダルで表示されることは、本当にモーダルであることとは異なります。たとえば、iPadの場合はコントローラをUIPopoverControllerの中に入れて、コントローラがモーダルに表示されないようにしますが、別のコントローラをモダリティ上に表示することもできます。したがって、2番目のコントローラはモーダルで表示されますが、プログラム自体が適切に設定されていれば、ユーザーはポップオーバーを完全に無視することができるため、モーダルダイアログではありません。

+1

'viewWillDisappear'が早すぎます。 'viewDidDisappear'は、親がゼロになったかどうかをチェックするのに適しています。 navスタックをポップした後 – qix

6

チェックあなたのUIViewControllerのparentViewControllerプロパティがnilであるかどうか。 プロパティがnilの場合は表示されず、表示されません。

注:UITableViewControllerのchildViewControllerのparentViewControllerプロパティもnilではないため、parentViewControllerがUITableViewControllerでないことも確認する必要があります。