让我清楚地解释一下。

我在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/

10-09 17:44