2

私はタブバーアプリケーションを持っています。ナビゲーションに戻るTabBarアプリのコントローラの最初のビュー

タブバーには2つのタブしかありません。最初のタブはNavigationControllerで、NavigationControllerには2つのビューがあり、ルートビューと詳細ビューは2番目にTableViewControllerです。二番目の作品は完璧ですが、最初の作品は完璧ではありません。

最初のビュー(NavigationController)から開始します。次に、NavigationViewの詳細ビューに進みます。次に、たとえば、2番目のタブバービューに移動します。その後、最初に戻ってきますが、ルートビューは表示されませんが、詳細ビューは表示されません。

毎回ルートビューを開くことはできますか?

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    if (viewController != tabBarItemForNavControllerTab) { 
    [self.navControllerInFirstTab popToRootViewControllerAnimated:NO]; 
    } 
} 

また、あなたのUITabBarControllerを作成するときに、デリゲートは、適切に設定されていることを確認し、あなたのコントローラ名に合わせて私のスニペットからのコードを変更:

答えて

8

は、このようなUITabBarController delegate方法tabBarController:didSelectViewController:を使用してください。

+0

このクラスではこのコードを配置する必要がありますか? –

+0

@EugeneTrapeznikov UITabBarControllers親コントローラ内。代理人の仕組みが分からない場合は、[**記事**](http://thinkvitamin.com/code/ios/ios-design-patterns-delegation-part-2/)をお読みください。 – dom

+0

デリゲートをプログラムで設定できますか? self.tabBarController.delegate = selfです。それは大丈夫ですか? –

関連する問題