在运行时更改 iOS 13 中的根视图控制器

Posted

技术标签:

【中文标题】在运行时更改 iOS 13 中的根视图控制器【英文标题】:Change root view controller in iOS 13 during runtime 【发布时间】:2019-12-04 05:20:33 【问题描述】:

当应用程序从注册流程屏幕切换到仪表板屏幕时,我在 UIWindow extension 中使用 switchRootViewController 来切换我的根 ViewController。

ios 13 中,这会产生一个空白屏幕。我也尝试从keyWindow 更改为windows.first。它仍然给空白屏幕。知道如何解决这个问题吗?

注意:我没有添加场景委托。我的根视图控制器在第一次启动时启动良好。当我稍后尝试使用该扩展名更改它时,就会出现空白屏幕。

【问题讨论】:

【参考方案1】:

试试我在这篇文章中的回答:How do I dismiss a rootViewController before presenting a new UITabBarController?

只需将MyTabBarController 替换为您的DashboardViewController

【讨论】:

这与iOS 13中的rootViewController切换有关。 你只问过这个问题。你想改变rootviewcontroller....对吗?这个答案你可以试试。

以上是关于在运行时更改 iOS 13 中的根视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

更改 iOS 窗口的根视图控制器

iOS 中常见场景的根视图控制器问题

当被模态视图控制器覆盖时,iOS 6 视图控制器布局在方向更改后不会更新

在运行中以编程方式更改 iOS7 状态栏颜色?

UIScrollView 作为 UISplitViewController 中的根视图

当 ObservedObject 在其他类中发生更改时如何在 ContentView 中运行方法 [Swift 5 iOS 13.4]