0

私のアプリケーションはビューベースのアプリケーションです。最初のビューはログインビューです。ログインビュー後、私はtabBarControllerがありMainMenuCcontroller持っている:ログイン・ビュー・コントローラからどのように私は現在のビューを残すことなくmodalViewControllerを却下することができますか?

@interface RunnoMainMenuController : UIViewController { 
IBOutlet UITabBarController *tabBarController; 
} 

を、私はこのコード行を使用してMainMenuControllerに行きます:

[self presentModalViewController:mainMenu animated:YES]; 

このコントローラは、4つのタブがあります。今私はtabBarItemのviewWillAppearでいくつかのものを行う必要があります。私がtabBarItemをタップすると、viewWillAppearは呼び出されません。私はpresentModalViewControllerを使用してテーブルビューコントローラをポップアップするこれらのtabBarItemのビューの1つにボタンを持っています。このtableViewはdismissModalViewControllerAnimated:YESを使用して消えます。私はこのテーブルビューをポップアップし、それを閉じると、すべてのtabBarItemのviewWillAppearがうまく動作します。もし私がMainMenuControllerでmodalViewControllerを却下したら、再びログインビューに戻ります。どのように私は現在のビューまたは他の任意のソリューションを残すことなくmodalViewControllerを却下することができますか?前もって感謝します。

答えて

3

ビューの表示方法を検討する必要があります。タブバーコントローラは、常にウィンドウのルートビューコントローラである必要があります。 Apple docsから:

タブバーのインタフェースを展開、あなたはあなたの窓の ルートとして、このビューをインストールする必要があります。ほかのビューコントローラとは異なり、タブバー は、別のビュー コントローラの子としてインストールされるべきではありません。

ログインビューをルートビューとして、タブバーをモーダルビューコントローラとして表示するのではなく、もう一方の方法で試してみてください。タブ・コントローラはrootとしてログインし、最初に表示されたタブのビュー・コントローラからモーダル・ビュー・コントローラとして表示されます。これを閉じると、タブバーコントローラが表示されます。

関連する問題