关闭呈现视图控制器

时间:2014-10-30 19:33:50

标签: ios objective-c

我有以下情况:

查看控制器A - >以模态呈现 - >查看控制器B

查看控制器B - >以模态呈现 - >查看控制器C

我想解除视图控制器“C”并直接转到“A”而不是显示“B”,因为那时显示“B”是没有意义的。

我怎样才能做到这一点?

谢谢, 丹尼尔

4 个答案:

答案 0 :(得分:8)

在'视图控制器C' - >

在iOS 6之前: 使用

[self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];

或者,

[self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES];

iOS 6及以上版本: 使用

[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

答案 1 :(得分:3)

您可以使用segue从其他视图控制器呈现视图控制器。

要向后浏览层次结构,您通常会忽略显示的视图控制器,或者通过展开segues 返回到特定的视图控制器。

答案 2 :(得分:1)

尝试以下方法:

[vcB dismissModalViewControllerAnimated:NO]   //no Animation, so happens instantly
[vcA dismissModalViewControllerAnimated:YES]  //with Animation, this is all you see  

答案 3 :(得分:1)

如果您的B和C相关且是A

的更详细版本,那么您最好的选择是使用导航控制器

A-> B-C。您将解除堆叠/弹出堆栈中推送的视图控制器的问题。

阅读此链接非常有用 - http://chrisrisner.com/Unwinding-with-iOS-and-Storyboards