sky*_*erl 13 iphone objective-c uiviewcontroller uinavigationcontroller
当我调用我的方法dismissView时,我收到此错误.这是方法存根:
-(IBAction)dismissView
{
RootViewController *rootController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
[self.navigationController popToViewController:rootController animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
这应该工作,我已经检查过,rootController被初始化和分配.有任何想法吗?
Joa*_*que 26
我最近遇到了这个问题并用这样的东西解决了......
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];
Run Code Online (Sandbox Code Playgroud)
Ben*_*ieb 12
的-popToViewController用于弹出视图控制器OFF堆栈,下降到一个已经存在.你UINavigationController有一堆ViewControllers(存储在viewControllers属性中),当你popToViewController,你想要传递该数组中的一个元素作为第一个参数.
在这种情况下-popViewControllerAnimated:,您最可能想要做的是使用,这将从ViewController堆栈中删除顶部
斯威夫特 4
对于任何仍在寻找不涉及UINavigationController堆栈索引的更好解决方案的人来说,更大的导航堆栈会带来更多问题 - 这是解决此问题的最简单方法:
if let destinationViewController = navigationController?.viewControllers
.filter(
{$0 is DestinationViewController})
.first {
navigationController?.popToViewController(destinationViewController, animated: true)
}
Run Code Online (Sandbox Code Playgroud)