2013-07-03 22 views
1

TableViewController语境: 这里是我的应用程序:流行根SplitViewController在TabBarController - iOS设备

Tab 1: NavigationController -> ViewController 

Tab 2: SplitViewController -> NavigationController -> Master : TableViewController ->TableViewController 

          -> NavigationController -> Detail : TableViewController -> TableViewController 


Tab 3: NavigationController -> ViewController (I'm Here) 

如何弹到每个选项卡的根从接头3(基本上退出按钮)的方法?

回答

1

我设法完成什么,我试图做的,这里是为别人寻找答案代码:

- (void) logout{ 
for(UIViewController *viewController in tabBarController.viewControllers) 
{ 
    if([viewController isKindOfClass:[UINavigationController class]]){ 
     [(UINavigationController*)viewController popToRootViewControllerAnimated:NO]; 
    } 
    else if([viewController isKindOfClass:[UISplitViewController class]]){ 

     UISplitViewController *splitView = (UISplitViewController *)viewController; 
     for (UIViewController *navControllerInSplit in splitView.viewControllers) { 
      if([navControllerInSplit isKindOfClass:[UINavigationController class]]){ 
        [(UINavigationController*)navControllerInSplit popToRootViewControllerAnimated:NO]; 
      } 
     } 
    } 
} 

}

1

//基于UIViewController的标签即可弹出浏览

//试试这个。对于流行到rootview

MyClass *obj = [self.navigationController.viewControllers objectAtIndex:0]; 
[self.navigationController popToViewController:obj animated:YES]; 
+0

这只能是导航控制器,它的SplitViewControllers我需要弹出。 (在附注中,这对我在包含在navigationContorller中的普通视图无效) –

0

添加以下代码UINavigationController其中UITabbarController

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    if ([self.tabBarController.selectedViewController isKindOfClass:[UINavigationController class]]) 
    { 
     [(UINavigationController*)self.tabBarController.selectedViewController popToRootViewControllerAnimated:YES]; 


    } 

} 

参考:View Controller Catalog for iOS

分割视图控制器必须始终是您创建的任何界面的根。

换句话说,你必须始终从UISplitViewController对象作为应用程序的窗口根视图安装视图。

您的拆分视图接口的窗格然后可包含导航 控制器,标签栏控制器或 需要实现的接口的任何其它类型的视图控制器。

分割视图控制器不能以模态方式呈现。

所以,你试图做的是不正确的,事实上你的应用程序可能会被Apple拒绝。

+0

抱歉,这是我的错,我错误地表示了图,我更新了我的问题。 –

+0

rootview手段。没有标签栏它的UISplitViewController必须是rootview – Vinodh

+0

我敢肯定,只要tabbarcontroller是root,你就可以在tabbarcontroller中拥有一个splitview –