在 iOS 中隐藏模态视图控制器(但将其保存在内存中)

Posted

技术标签:

【中文标题】在 iOS 中隐藏模态视图控制器(但将其保存在内存中)【英文标题】:Hiding a Modal View Controller in iOS (but keeping it in memory) 【发布时间】:2012-01-05 19:32:35 【问题描述】:

我在我的应用程序中激活了一个模态视图控制器,我希望用户能够隐藏它但保留它的状态(导航堆栈等)。根据 Apple 的文档,dismissModalViewController 从内存中释放它。

有没有一种简单的方法可以使用另一种方法来保留对它的引用?

【问题讨论】:

【参考方案1】:

如果您要关闭视图,则不会。您最好保留有关导航状态的任何信息并使用它从其他视图中初始化新视图。

更新 如果您需要隐藏并再次显示它,我会考虑重新考虑如何使用模态视图。 Apple 非常清楚如何以及为什么要使用模态。有很多方法可以解决问题,但你可能只是为了让事情理顺而走上一条痛苦的道路。

Apple View Controller Programming Guide (Modal Views)

【讨论】:

我可以不关闭视图,而是将其隐藏在屏幕之外,然后在需要时将其带回来? 我认为如果您尝试覆盖模态视图的工作方式,您最终会陷入混乱。模态并不真正适合整个 MVC 方法。请参阅我的编辑中的链接。

以上是关于在 iOS 中隐藏模态视图控制器(但将其保存在内存中)的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 查询在控制台上工作,但将其用作视图中的范围会呈现语法错误

模态视图控制器在 iOS 7 上工作,在 iOS 6 上留下一个空白

iOS 13 UIViewController 模态演示阴影

模态视图导航栏的位置 - iOS7

关闭模态视图控制器后在根视图控制器中执行操作

切换标签栏项目时,UINavigationController 如何将其整个视图控制器表示层次结构保存在内存中?