iOS 导航控制器获取弹出的视图控制器

Posted

技术标签:

【中文标题】iOS 导航控制器获取弹出的视图控制器【英文标题】:iOS navigationcontroller get which viewcontroller got popped 【发布时间】:2013-01-04 11:45:12 【问题描述】:

在我的应用程序中,我使用 UINavigationController 在视图控制器之间导航。 每当用户导航回主视图控制器时,我都想查看弹出了哪个视图控制器。

有没有办法从主视图控制器中确定这一点?

提前致谢!

此致,

佐利

【问题讨论】:

请使用搜索工具,我在 5 秒内找到了***.com/questions/4834723/… 一旦你告诉我 viewvillappear 将如何告诉我哪个视图控制器被弹出,我会立即道歉。因为它没有参数,所以它不是一个解决方案。 使用 viewWillDisappear 是一种解决方案。解决方案的其余部分将取决于您的应用程序结构,但我会在 viewWillDisappear 中亲自使用 NSNotification。 【参考方案1】:

我认为您必须放置自己的自定义按钮,而不是使用导航控制器默认的后退按钮。并在该自定义按钮的选择器中尝试以下代码。

NSLog(@">

希望对你有帮助。

【讨论】:

我最终为子视图控制器创建了一个委托,它在弹出之前调用父视图控制器的选择器。这不是很好,但工作。我敢肯定有一种更优雅的方法

以上是关于iOS 导航控制器获取弹出的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 通过在左边缘平移弹出视图控制器,导航栏消失

ios 最佳实践 - 导航和选项卡控制器以及推送/弹出

iOS Swift - 使用可以取消的临时 UIView

iOS 简单视图从导航堆栈错误弹出

模态显示的表格视图没有导航栏

从弹出的视图控制器传递数据