关闭从模态呈现的视图控制器翻转的视图控制器

Posted

技术标签:

【中文标题】关闭从模态呈现的视图控制器翻转的视图控制器【英文标题】:Dismiss view controller flipped from modally presented view controller 【发布时间】:2016-07-22 19:12:05 【问题描述】:

我从 UIViewController A 模态呈现 UIViewController B。然后,在 B 和 C 之间有一个 UINavigationController,C 从 B 翻转。我想解除 B 和 C 并直接动画到 A,而不显示 B 和因此无需调用 B 的 viewDidLoad 函数。我正在从 A 调用dismissViewControllerAnimated,但这仍然首先显示 B,因此调用 B 的 viewDidLoad 函数。如果对此已经有 SO 答案,请原谅我;我已经窥探了几个小时,只是找不到答案。我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

任何模态显示的Parent ViewController都可以使用:

[self.parentViewController dismissModalViewControllerAnimated:YES];

另一种方法是使用:

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

如果它不起作用,请告诉我。

【讨论】:

我已经尝试了第二个选项,也就是说,就像我说的,首先显示 B 并调用 B 的 viewDidLoad 函数。第一个选项的功能已弃用。

以上是关于关闭从模态呈现的视图控制器翻转的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

如何从 appdelegate 呈现和关闭模态视图?

从 uitabbarController 视图中关闭模态视图

如何从模态视图控制器调用呈现视图控制器的方法

为啥一个简单的模态视图控制器在呈现和关闭时会滞后?

如何关闭模态视图控制器,然后立即让呈现视图控制器呈现不同的模态视图控制器?

关闭当前的模态视图控制器,然后呈现新的模态视图控制器