Я не могу объяснить, почему код Objective-C работает так, как вы ожидаете.Но я знаю, что не так с кодом Swift:
Всего несколько строк кода для создания окна с пустым представлением
Но то, что вы делаете, некак это сделать;вот ваш код с некоторыми вставленными комментариями:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow(frame: CGRect(x: 0.0, y: 0.0, width: 640.0, height: 960.0))
// wrong; there is no need to frame the window
// and if you do frame it, it must be framed to the actual screen size
let viewController = UIViewController()
let view = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 640.0, height: 960.0))
view.backgroundColor = UIColor.white
viewController.view = view
// wrong; you must never assign a view controller a view like this...
// except in the view controller's own `loadView` method
self.window?.rootViewController = viewController
self.window?.makeKeyAndVisible()
return true
}
Итак, изменив при необходимости:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.window = UIWindow()
let viewController = UIViewController()
viewController.view.backgroundColor = .white
self.window?.rootViewController = viewController
self.window?.makeKeyAndVisible()
return true
}
И вот, минимально правильно построенное приложение с пустыми окнами без раскадровки (или, по крайней мере,, если у него есть раскадровка, он игнорирует его).