我在标签栏项目2上有导航控制器。我正在标签栏项目2->导航项目2中进行一些操作。当我点击按钮时我想转到标签栏项目1,但同时我希望第二个标签中的导航控制器设置为其根视图控制器。我试过以下:
[self.tabBarController setSelectedIndex:0];
[self.navigationController popToRootViewControllerAnimated:NO];
但是当我从标签1回到标签2时。它给了我异常:“消息发送到解除分配的实例”。实现这一目标的正确方法是什么?
答案 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