0

我在标签栏项目 2 上有导航控制器。我在标签栏 item 2->navigation item 2 中做一些操作。当我单击按钮时,我想转到选项卡栏项目 1,但同时我希望将第二个选项卡中的导航控制器设置为其根视图控制器。我试过以下:

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

但是当我从 tab 1 回到 tab 2 时。它给了我例外:“发送到已释放实例的消息”。实现这一目标的正确方法是什么?

4

1 回答 1

1

要选择第一个选项卡:

[self.tabBarController setSelectedIndex:0];

切换标签的根视图控制器:

为此,您必须使用UITabBarBontroller's委托方法弹出到 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];
    }
 }

}

PS不要忘记添加UITabBarControllerDelegateAppDelegate.h

于 2013-10-09T11:04:41.747 回答