1

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

Tab 1: NavigationController -> ViewController

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

                           -> NavigationController -> Detail : TableViewController  -> TableViewController


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

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

4

3 回答 3

1

// 基于 UIviewController 标签你可以弹出来导航

// 尝试这个..

MyClass *obj = [self.navigationController.viewControllers objectAtIndex:0];
[self.navigationController popToViewController:obj animated:YES]; 
于 2013-07-03T10:39:13.277 回答
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];
            }
        }
    }
}

}

于 2013-07-03T13:47:47.297 回答
0

将以下 pop 代码添加到 rootview 的UINavigationController位置UITabbarController

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


    }

}

参考:查看 iOS 的控制器目录

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

换句话说,您必须始终将来自UISplitViewController对象的视图安装为应用程序窗口的根视图。

然后,拆分视图界面的窗格可能包含导航控制器、选项卡栏控制器或您需要实现界面的任何其他类型的视图控制器。

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

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

于 2013-07-03T11:02:42.987 回答