导航回主ViewController dismissViewControllerAnimated困境

时间:2012-02-21 09:38:45

标签: objective-c ios4 uiviewcontroller

我有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(这是我唯一想到的)。

谢谢

1 个答案:

答案 0 :(得分:5)

是的,

- (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion

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

- (UIViewController *)popViewControllerAnimated:(BOOL)animated

应该做你想要的。

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

[self.navigationController popViewControllerAnimated:YES];

如果您阅读UIViewController和UINavigationController参考,您将省去很多麻烦。两次;)