导航回主ViewController dismissViewControllerAnimated困境

yac*_*ana 2 objective-c uiviewcontroller ios4

我有2个ViewControllers直接连接push segue.我通过调用从第一个视图控制器导航到第二个视图控制器[self performSegueWithIdentifier:@"segueIdentifier" sender:sender].在第二个我有一个绑定到"完成"按钮的IBAction方法.按下该按钮基本上应该显示第一个视图控制器(一种后退按钮).我成功地做到了:

NSArray *viewControllers = self.navigationController.viewControllers;
[self.navigationController popToViewController:[viewControllers
objectAtIndex:0] animated:YES];
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法实现相同的效果:

[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

无论我尝试了什么,虽然这没有做到这一点.我想知道我到底错过了什么,但我无法理解.dismissViewControllerAnimated方法是否仅适用于Modal segues(这是我唯一想到的).

谢谢

ter*_*ina 5

是,

- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
Run Code Online (Sandbox Code Playgroud)

是以模态方式显示UIViewController的时候.

- (UIViewController *)popViewControllerAnimated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

应该做你想要的.

基本上,在你的第二个VC:

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

如果您阅读UIViewController和UINavigationController引用,您将省去很多麻烦.两次;)