从 SceneDelegate 加载视图时黑屏
Black Screen when loading View from SceneDelegate
当我尝试加载此视图时,我的屏幕几乎是黑屏。但是如果我添加 view.backgroundColor = .red 它会正确显示红色。只是我在情节提要中所做的设置不会显示。
这是我使用的代码:
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
guard let windowScene = scene as? UIWindowScene else { return }
window = UIWindow(windowScene: windowScene)
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
window?.rootViewController = mainStoryboard.instantiateViewController(withIdentifier: "ResultsViewController") as! ResultsViewController
window?.makeKeyAndVisible()
}
import UIKit
class ResultsViewController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .blue
}
}
您似乎在故事板中创建了 ResultsViewController
。您必须从情节提要中加载它以将其设置为 rootViewController
.
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
window?.rootViewController = mainStoryboard.instantiateViewController(withIdentifier: "ResultsViewController") as! ResultsViewController
注意:不要忘记在故事板中将 ResultsViewController
的标识符设置为“ResultsViewController”。
当我尝试加载此视图时,我的屏幕几乎是黑屏。但是如果我添加 view.backgroundColor = .red 它会正确显示红色。只是我在情节提要中所做的设置不会显示。
这是我使用的代码:
import UIKit
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
guard let windowScene = scene as? UIWindowScene else { return }
window = UIWindow(windowScene: windowScene)
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
window?.rootViewController = mainStoryboard.instantiateViewController(withIdentifier: "ResultsViewController") as! ResultsViewController
window?.makeKeyAndVisible()
}
import UIKit
class ResultsViewController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .blue
}
}
您似乎在故事板中创建了 ResultsViewController
。您必须从情节提要中加载它以将其设置为 rootViewController
.
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
window?.rootViewController = mainStoryboard.instantiateViewController(withIdentifier: "ResultsViewController") as! ResultsViewController
注意:不要忘记在故事板中将 ResultsViewController
的标识符设置为“ResultsViewController”。