2013-06-18 121 views
0

我在Xcode中有一个选项卡式应用程序项目,我试图为viewcontrollers之一创建后退按钮以返回到前一个视图。你可以从2个不同的viewcontrollers得到这viewcontroller,所以我想知道是否有可能弹出viewcontroller为了回到正确的视图控制器(您以前的视图控制器)。此代码似乎不适用于tabBarController返回上一页ViewController

-(IBAction) goBack: (id)sender{ 
[self.tabBarController popViewControllerAnimated: YES]; } 
+1

标签栏控制器不管理一堆视图控制器。由于选项卡栏控制器允许随机访问其选项卡,因此不存在指示先前视图控制器的层级。如果您有后退按钮更改为不同的选项卡,则很可能出现设计问题。标签通常应该完全相互独立。 –

+0

我有一个tabbarcontroller,2个控制器有一个链接到独立视图控制器(不在标签栏上)的按钮。有没有更好的方法来做到这一点?谢谢您的帮助。 –

回答

0
NSArray *array = [self. tabBarController viewControllers]; 

[self.tabBarController popToViewController:[array objectAtIndex:2] animated:YES]; 

想想这一个工程。没有测试过它。请让我知道

0

检查此。

id controller = [self.tabBarController selectedViewController]; 
     if([controller isKindOfClass:[UINavigationController class]]) 
     { 
      [controller popViewControllerAnimated:YES]; 
     } 
+0

这是崩溃,但我认为我混淆了自己,并解释错误。我将从ViewController转到两个可能的tabbar控制器。 –

0
NSArray *array = [self. tabBarController viewControllers]; 
for (UIViewController *controller in array) { 
    if ([controller isKindOfClass:[ReachViewControllerName class]]) { 
     [self.navigationController popToViewController:controller 
               animated:YES]; 
     break; 
    } 
} 

可能是-111帮助。