Swift Xcode 11和iOS13,使用UIKIT无法更改UIViewController的背景颜色

Swift Xcode 11和iOS13,使用UIKIT无法更改UIViewController的背景颜色,swift,uiviewcontroller,ios13,xcode11,Swift,Uiviewcontroller,Ios13,Xcode11,因此,我在Xcode11中创建了一个新项目,将AppDelegate设置为我的新VC,并注释了xxx场景代理中的代码,使其不包含UIKit部分: func应用程序uApplication:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplication.launchOptions键:任意]?->布尔{ //应用程序启动后自定义的覆盖点。 窗口=UIWindow 窗口?.makeKeyAndVisible 让控制器=M

因此,我在Xcode11中创建了一个新项目,将AppDelegate设置为我的新VC,并注释了xxx场景代理中的代码,使其不包含UIKit部分:

func应用程序uApplication:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplication.launchOptions键:任意]?->布尔{ //应用程序启动后自定义的覆盖点。 窗口=UIWindow 窗口?.makeKeyAndVisible 让控制器=MainVC 窗口?.rootViewController=控制器 返回真值 } 在我的UIViewController中,我想设置背景颜色

导入UIKit 类MainVC:UIViewController{ 覆盖func viewDidLoad{ view.backgroundColor=.red self.view.backgroundColor=.blue 打印主屏幕显示 配置用户界面 setupUI } 但结果是模拟器中出现了黑屏。即使不从其他项目中获取代码也会有所帮助。。。 我以前在其他Xcode版本中也做过这项工作,应该有工作。有什么想法吗

PS:应用程序进入ViewController,我可以在控制台中打印,但屏幕是黑色的

并将xxx场景委托中的代码注释为没有UIKit部分

您不能这样做。您的代码需要放在正确的位置。如果您在Xcode 11中创建了一个新项目,此代码将不起任何作用:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    window = UIWindow()
    window?.makeKeyAndVisible()
    let controller = MainVC()
    window?.rootViewController = controller
    return true
}
代码会运行,但window属性不是应用程序的窗口,因此您所做的是毫无意义的。该窗口现在属于场景代理。您需要在此处创建窗口并设置其根视图控制器

func scene(_ scene: UIScene, 
    willConnectTo session: UISceneSession, 
    options connectionOptions: UIScene.ConnectionOptions) {
        if let windowScene = scene as? UIWindowScene {
            self.window = UIWindow(windowScene: windowScene) 
            let vc = MainVC()                                  
            self.window!.rootViewController = vc             
            self.window!.makeKeyAndVisible()                 
        }
}
并将xxx场景委托中的代码注释为没有UIKit部分

您不能这样做。您的代码需要放在正确的位置。如果您在Xcode 11中创建了一个新项目,此代码将不起任何作用:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    window = UIWindow()
    window?.makeKeyAndVisible()
    let controller = MainVC()
    window?.rootViewController = controller
    return true
}
代码会运行,但window属性不是应用程序的窗口,因此您所做的是毫无意义的。该窗口现在属于场景代理。您需要在此处创建窗口并设置其根视图控制器

func scene(_ scene: UIScene, 
    willConnectTo session: UISceneSession, 
    options connectionOptions: UIScene.ConnectionOptions) {
        if let windowScene = scene as? UIWindowScene {
            self.window = UIWindow(windowScene: windowScene) 
            let vc = MainVC()                                  
            self.window!.rootViewController = vc             
            self.window!.makeKeyAndVisible()                 
        }
}

您好@matt Sir,我在应用程序启动时最初使用了上述代码,但我不知道在登录后如何使用此代码,并且需要设置主视图控制器。@SagarChauhan您好@matt Sir,我在应用程序启动时最初使用了上述代码,但我不知道在登录后如何使用此代码,并且需要设置主视图控制器。@SagarCha乌汉