获取异常“消息发送到解除分配的实例”

时间:2013-10-09 10:57:58

标签: iphone ios objective-c

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

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

但是当我从标签1回到标签2时。它给了我异常:“消息发送到解除分配的实例”。实现这一目标的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

选择第一个标签:

[self.tabBarController setSelectedIndex:0];

切换标签的rootviewcontroller:

要实现这一点,您可以使用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];
    }
 }

}

P.S。不要忘记在AppDelegate.h中添加UITabBarControllerDelegate