我有2个ViewControllers直接连接push segue。我通过调用[self performSegueWithIdentifier:@"segueIdentifier" sender:sender]
从第一个视图控制器导航到第二个视图控制器。在第二个我有一个绑定到“完成”按钮的IBAction方法。按下该按钮基本上应该显示第一个视图控制器(一种后退按钮)。我设法做到了:
NSArray *viewControllers = self.navigationController.viewControllers;
[self.navigationController popToViewController:[viewControllers
objectAtIndex:0] animated:YES];
我尝试使用以下方法达到相同的效果:
[self dismissViewControllerAnimated:YES completion:nil];
无论我尝试了什么,虽然这没有做到这一点。我想知道我到底错过了什么,但我无法理解。 dismissViewControllerAnimated方法是否仅适用于Modal segues(这是我唯一想到的)。
谢谢
答案 0 :(得分:5)
是的,
- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
是以模态方式显示UIViewController的时候。
- (UIViewController *)popViewControllerAnimated:(BOOL)animated
应该做你想要的。
所以基本上,在你的第二个VC中:
[self.navigationController popViewControllerAnimated:YES];
如果您阅读UIViewController和UINavigationController参考,您将省去很多麻烦。两次;)