是否可以弹出导航控制器两次?我有这个导航结构:
查看一---->查看二----->查看三
我想要完成的是,通过点击视图三上的一行,直接返回视图一。我已经通过协议委托从三到二完成了它,但是在视图一中设置委托不起作用并且设置两个连续的委托协议都弹出导航控制器,给我错误:嵌套导航控制器活动(或类似的东西)。
任何帮助,将不胜感激。提前致谢!
是否可以弹出导航控制器两次?我有这个导航结构:
查看一---->查看二----->查看三
我想要完成的是,通过点击视图三上的一行,直接返回视图一。我已经通过协议委托从三到二完成了它,但是在视图一中设置委托不起作用并且设置两个连续的委托协议都弹出导航控制器,给我错误:嵌套导航控制器活动(或类似的东西)。
任何帮助,将不胜感激。提前致谢!
有几个弹出选项
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
- (NSArray *)popToRootViewControllerAnimated:(BOOL)animated
- (NSArray *)popToViewController:(UIViewController *)viewController animated:(BOOL)animated
self.navigationController.viewControllers
然后使用数组来获取您想要弹出的特定 viewController使用以下代码。您可以使用任何数字而不是-3
弹出到不同的级别。
对象-C:
ViewController *View = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-3];
[self.navigationController popToViewController:View animated:YES];
斯威夫特 3.0*:
let controller = self.navigationController?.viewControllers[(self.navigationController?.viewControllers.count)! - 3]
self.navigationController?.popToViewController(controller!, animated: true)
你可以试试这个
[self.navigationController popToViewController:[[self.navigationController viewControllers] objectAtIndex:1] animated:YES];
希望能帮助到你!!
'self' 似乎在第一次流行之后被释放
UINavigationController *navigationController = self.navigationController;
[navigationController popViewControllerAnimated:NO];
[navigationController popViewControllerAnimated:YES];