Swift Xcode 11和iOS13,使用UIKIT无法更改UIViewController的背景颜色
因此,我在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中创建了一个新项目,此代码将不起任何作用: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
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乌汉