TableViewController上下文: 这是我的应用程序:
Tab 1: NavigationController -> ViewController
Tab 2: SplitViewController -> NavigationController -> Master : TableViewController ->TableViewController
-> NavigationController -> Detail : TableViewController -> TableViewController
Tab 3: NavigationController -> ViewController (I'm Here)
如何从选项卡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拒绝。