iOS App 正在创建两个 UIWindow

Posted

技术标签:

【中文标题】iOS App 正在创建两个 UIWindow【英文标题】:iOS App is creating two 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 的? 【参考方案1】:

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

【讨论】:

感谢您的评论,是的:)

以上是关于iOS App 正在创建两个 UIWindow的主要内容,如果未能解决你的问题,请参考以下文章

从IOS原生app JavaScript函数调用

tableview 图像未正确显示 - iOS 8 iPhone App Objective C

使用 Apple iOS Provisioning Portal 创建 iOS App

iOS开发:苹果开发者账号第一次新建APP ID以及创建App的步骤

如何创建 Airbnb iOS App 探索标签?

PhoneGap iOS App配置菜单