0

タブバー項目 2 にナビゲーションコントローラーがあります。タブバー項目 2-> ナビゲーション項目 2 でいくつかの操作を行っています。ボタンをクリックすると、タブバー項目 1 に移動したいのですが、同時に 2 番目のタブのナビゲーションコントローラーをルートビューコントローラーに設定したいと考えています。私は次のことを試しました:

            [self.tabBarController setSelectedIndex:0];
            [self.navigationController popToRootViewControllerAnimated:NO];

しかし、タブ 1 からタブ 2 に戻ったとき。それは私に例外を与えています:「割り当て解除されたインスタンスに送信されたメッセージ」。これを達成する正しい方法は何ですか?

4

1 に答える 1

1

最初のタブを選択するには:

[self.tabBarController setSelectedIndex:0];

タブの rootviewcontroller を切り替えるには:

これを実現するには、UITabBarBontroller'sdelegate メソッドを使用して rootviewcontroller にポップします。

それを書くAppDelegate

-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{

if (tabBarController.selectedIndex==1) {
//only for tab number 2
    if ([viewController isKindOfClass:[UINavigationController class]]) {

        UINavigationController *navController = (UINavigationController *)viewController ;
        [navController popToRootViewControllerAnimated:NO];
    }
 }

}

UITabBarControllerDelegatePS AppDelegate.hを追加することを忘れないでください

于 2013-10-09T11:04:41.747 に答える