在您的应用程序委托中。只需转到函数即可:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
{
if #available(iOS 13.0, *) {
window?.overrideUserInterfaceStyle = .light
}
return true
}
Run Code Online (Sandbox Code Playgroud)
有什么建议....
我正在从事一个 iOS 项目,该项目UserDefaults在启用文件保护时面临访问值的问题。Apple 社区中有几篇关于UserDefaults无法访问问题的帖子。一些讨论是,
这对我来说真的很令人沮丧,因为我的应用程序用于检查键FirstTimeAppLaunched的布尔值并基于它db encryption password为我的数据库重新创建的值。由于上述问题,一旦UserDefault无法访问,我的应用程序就会重新创建新密码,并最终丢失用户以前使用不同密码使用的所有数据。
现在我想使用整数状态而不是布尔值,因此我需要使用,
UserDefaults.standard.register(["FirstTimeAppLaunched", 0]);
Run Code Online (Sandbox Code Playgroud)
当应用程序启动时。第一次启动后我将其设置为 1,
UserDefaults.standard.set(1, forKey: "FirstTimeAppLaunched");
Run Code Online (Sandbox Code Playgroud)
在这种情况下我需要确认,
如果UserDefault由于上述问题而无法访问标准,是否可以保证 key 的返回值FirstTimeAppLaunched是NULL我使用方法注册的默认值UserDefaults.standard.register?
我想推送一个视图控制器,并希望其余任务在后台工作而不冻结 UI。但要么我的 UI 冻结,要么后台线程之前执行。附上我工作的一个小例子。
DispatchQueue.global(qos: .background).async {
DispatchQueue.main.async {
print("This is run on the main queue, after the previous code in outer block")
}
print("This is run on the background queue")
}
Run Code Online (Sandbox Code Playgroud)
结果:
This is run on the background queue
This is run on the main queue, after the previous code in outer block
Run Code Online (Sandbox Code Playgroud)
主队列应该比后台线程先执行。
在 iOS 13 中发现了下一个奇怪的错误,该错误以模态呈现在全屏视图控制器上。最初它坏了,它不是在全屏模式下打开的,所以我尝试了此链接中描述的下一个方法 现在它加载并等待触摸屏幕上的任何地方。目前这是父视图控制器,它应该以模态显示条款VC
mainView.hidden = YES;
IDTermsViewController *termsVC = [[self storyboard] instantiateViewControllerWithIdentifier:@"IDTermsViewController"];
termsVC.delegate = self;
if (@available(iOS 13.0, *)) {
[termsVC setModalPresentationStyle: UIModalPresentationFullScreen];
}
[self presentViewController:termsVC animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
目前,在介绍了这个 termVC 之后,我得到了下一个状态,如下面的屏幕截图所示。如果我执行任何操作 - 摇动手机,截屏,点击任意位置 - 将出现TermsVC!
这是我的简单按钮操作,用于显示 XIB 文件,该文件实际上是 Objective-C 中的条形码扫描仪。
- (IBAction)startCamera:(id)sender {
BarcodeVC * controller = [[BarcodeVC alloc] initWithNibName:@"BarcodeVC" bundle:[NSBundle mainBundle]];
//[self presentViewController:controller animated:YES completion:nil];
UIWindow * currentwindow = [[UIApplication sharedApplication] keyWindow];
[currentwindow.rootViewController presentViewController:controller animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是,一个警告来了:
keyWindow已弃用:首先在 iOS 13.0 中弃用
我知道iOS 13支持多场景,但是Objective-C有没有办法解决这个问题?我见过 Swift 版本,但使用 Objective-C 却没有成功。
我知道tel:// url 可用于允许在用户提示下拨打电话,所以想知道是否有权限在前台/后台拨打电话。是否可以在没有用户干预 IOS13 的情况下拨打电话?