调用 popViewController 时是不是可以跳过几个控制器并到达根视图控制器?
Posted
技术标签:
【中文标题】调用 popViewController 时是不是可以跳过几个控制器并到达根视图控制器?【英文标题】:Possibility to skip few controllers while invoking popViewController, and reaching root view controller?调用 popViewController 时是否可以跳过几个控制器并到达根视图控制器? 【发布时间】:2014-07-15 10:59:13 【问题描述】:我有以下结构:
-
window-> root_view_Controller = NavigationController->InitWithRoot->UITabViewController。
UITabViewController 有两个 Tabs
First Table View Controller 的 UIView 有一个注册按钮。
点击“按钮”
click_On_Button_In_TabView -> 推送第一个视图控制器 -> Click_On_Button_In_FirstView_Controller -> 推送第二个视图控制器。
问题:
5- 现在,我想从 Second View Controller 跳转到 TabViewController
。
换句话说,
'back' button on Second View controller should skip First View Controller and display
the tab bar controller [ ie: Window Root View Controller ] .
下面是正确的方法吗?
我想到实现第二个视图控制器的委托方法的一种方法
在第一个视图控制器上调用,第一个视图控制器立即从
viewDidAppear
,但我不确定这是否正确?
【问题讨论】:
取决于知识和责任的分配,所以你需要多说一下你的委托协议和关系。你可以使用popToRootViewControllerAnimated:
【参考方案1】:
好的,
我找到了解决办法。
1) 我无法使用默认的“后退”按钮导航到根视图控制器。
而是引入一个新的Left Bar Button Item,在ViewDidLoad中,就可以了
使用下面的行:
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(popToRootViewController:)];
【讨论】:
【参考方案2】:让你的后退按钮执行这个方法:
[self popToRootViewControllerAnimated:YES];
【讨论】:
以上是关于调用 popViewController 时是不是可以跳过几个控制器并到达根视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章
popviewcontroller 没有调用 viewWillappear
popViewController(animated: true) 动画运行缓慢
应该从父 ViewController 还是子 ViewController 调用 popViewController?