让我清楚地解释一下。
我在viewcontroller中有一个tabbarcontoller,它是单视图应用程序项目的主视图控制器。
我在视图控制器中添加了一个tabbarcontroller作为子视图。在tabbarcontroller中,我添加了两个导航控制器,如下图所示,
我添加了另外三个(分别名为First,Second,Third)的ViewController作为新文件。
如果我使用下面的选项卡在一个视图控制器中导航到另一个,
third = [[Third alloc] initWithNibName:@"Third" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:third animated:YES];
如果我切换到下一个选项卡并返回到上一个选项卡,则它应该跳到上一个视图控制器,该怎么做?
我试过了
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
}
不成功,
我也尝试过
[third popto];
在第三个ViewController中,
-(void)popto
{
[self.navigationController popViewControllerAnimated:YES];
}
什么都没有发生。
现在,我必须再次单击选项卡以将poptoviewcontroller弹出到第一个viewcontroller。
任何想法将不胜感激。
最佳答案
试试下面的代码片段
-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
UINavigationController *navController = (UINavigationController*)viewController;
if (navController && ([[navController viewControllers] count] > 0))
{
[navController popToRootViewControllerAnimated:NO];
}
return YES;
}
希望它对您有用。
关于iphone - 从ViewController调用poptoviewcontroller函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18720228/