当 UIViewController 模态显示时,UINavigationController(在 UITabBarController 选项卡内)丢失堆栈

Posted

技术标签:

【中文标题】当 UIViewController 模态显示时,UINavigationController(在 UITabBarController 选项卡内)丢失堆栈【英文标题】:UINavigationController (Inside a UITabBarController tab) losing stack when a UIViewController is presented modally 【发布时间】:2017-04-03 20:57:22 【问题描述】:

我有一个带有 3 个选项卡的 UITabBarController。他们都有一个 UINavigationController 和他们当前的 UIViewControllers 堆栈。 当我从 UITabBarController(模态)顶部的任何视图中呈现 UIViewController 并且呈现的 UIViewController 被解除时,选定的选项卡会丢失之前呈现的 UIViewController 堆栈,就会出现问题。

有谁知道这是否有助于提高 iPhone 性能的生命周期内存管理?我已经用相当不错的 iPhone 和模拟器对此进行了测试。

谢谢。

【问题讨论】:

您是从堆栈上的顶视图控制器而不是标签栏控制器或导航控制器呈现? 我总是从最顶层的视图控制器呈现,通常是导航的顶层堆栈 【参考方案1】:

来自未来的我。当从父模态视图控制器中解除模态视图控制器时会发生这种情况。应在最顶层的视图控制器上调用解除函数以仅解除当前屏幕

【讨论】:

以上是关于当 UIViewController 模态显示时,UINavigationController(在 UITabBarController 选项卡内)丢失堆栈的主要内容,如果未能解决你的问题,请参考以下文章

在不覆盖全屏的 UIViewController 中模态显示 UIViewController

iOS5:在模态 UIViewController 中播放 Youtube 视频时 UIWebView 出现异常

iOS 13 UIViewController 模态演示阴影

模态 UIViewController 总是在 iPad 上全屏显示。为啥?

如果以模态方式呈现,则获取最顶层的 UIViewController

当模态视图(第二个视图)被关闭时刷新 ViewController 中的核心数据 - Swift