在TabBarController - iOS中弹出到根SplitViewController

时间:2013-07-03 10:23:08

标签: ios uitabbarcontroller uisplitviewcontroller

TableViewController上下文: 这是我的应用程序:

Tab 1: NavigationController -> ViewController

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

                           -> NavigationController -> Detail : TableViewController  -> TableViewController


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

如何从选项卡3中的方法(基本上是注销按钮)弹出每个选项卡的根目录?

3 个答案:

答案 0 :(得分:1)

//基于UIviewController标签,您可以弹出导航

//试试这个..

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

答案 1 :(得分: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];
            }
        }
    }
}

}

答案 2 :(得分:0)

UINavigationController UITabbarController

添加- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { if ([self.tabBarController.selectedViewController isKindOfClass:[UINavigationController class]]) { [(UINavigationController*)self.tabBarController.selectedViewController popToRootViewControllerAnimated:YES]; } } 的popview的以下代码
UISplitViewController

参考:View Controller Catalog for iOS

  

拆分视图控制器必须始终是您所有接口的根   创建

换句话说,您必须始终将{{1}}对象中的视图安装为应用程序窗口的根视图

  

分割视图界面的窗格可能包含导航   控制器,标签栏控制器或任何其他类型的视图控制器   你需要实现你的界面。

无法以模态方式显示拆分视图控制器。

因此,您尝试的内容不正确,实际上您的应用可能会被Apple拒绝。