【发布时间】: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的?