【问题标题】:iOS App is creating two UIWindowiOS App 正在创建两个 UIWindow
【发布时间】:2017-09-06 16:43:50
【问题描述】:

我正在重构一个现有项目以不再使用 .storyboards 并删除 .plist 中的初始主界面,但由于某种原因,该应用正在创建两个 UIWindow 实例。

我不知道为什么会发生这种情况,结果是当我创建我的实际 UIWindow 并使用 makeKeyAndVisible() 一秒钟时,我得到一个黑屏,直到实际的 rootViewController 变得可见,这发生了因为在那一瞬间,它显示了第一个颜色为nil 的 UIWindow。如果有人知道为什么会发生这种情况,我将不胜感激;)

编辑 1:

AppDelegate.swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    window = UIWindow(frame: UIScreen.main.bounds)
    appCoordinator.start()

    return true
}

AppCoordinator.swift

func start() {
        let mainVC = UIStoryboard(storyboard: .main).instantiateInitialViewController()
    window.backgroundColor = .white
    window.rootViewController = mainVC
    window.makeKeyAndVisible()
}

【问题讨论】:

  • 显示您的 AppDelegate 代码?
  • @DonMag 添加了 appDelegate 代码 :)
  • 抱歉,我无法使用典型代码复制UIWindow 的“双重实例”,以便在未定义“主界面”的情况下运行。我假设您在调试视图层次结构中看到了这一点?你是如何在appCoordinator 中分配window 的?

标签: ios uiwindow


【解决方案1】:

检查“主界面”是否为空:

【讨论】:

  • 感谢您的评论,是的:)
猜你喜欢
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-20
  • 1970-01-01
相关资源
最近更新 更多