当启用暗模式时,UIViewControllers 总是使用亮模式。viewController.traitCollection.userInterfaceStyle 总是 Light 但 window.traitCollection.userInterfaceStyle 是 Dark。
UIUserInterfaceStyle 未在 plist 中设置。我尝试了所有可能的设置 - 将 UIUserInterfaceStyle 添加到 plist,为 UIWindow 和 UIViewController 设置 overrideUserInterfaceStyle。我为不同的情况记录了 userInterfaceStyle,结果是
TestDarkModeViewController *testController = [[TestDarkModeViewController alloc] initWithNibName:@"TestDarkModeViewController" bundle: nil];
testController.traitCollection.userInterfaceStyle //result Light
Run Code Online (Sandbox Code Playgroud)
但对于
UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:testController];
navController.traitCollection.userInterfaceStyle //result Dark
UIViewController *testController2 = [[UIViewController alloc]init];
testController2.traitCollection.userInterfaceStyle //result Dark
Run Code Online (Sandbox Code Playgroud)
似乎只有当控制器以编程方式从 xib 文件加载时才会发生。知道什么是错误的以及如何解决这个问题吗?
以编程方式设置此属性
navController.overrideUserInterfaceStyle = //.light/.dark
Run Code Online (Sandbox Code Playgroud)
您还可以强制设置 windows 属性。
window.overrideUserInterfaceStyle = //.light/.dark
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |