在 iOS 中显示视图之前显示提示对话框
Teleprompt alert dialog show before showing view in iOS
我的应用程序中有电话提示警报对话框。我是 运行 iOS 10.1.1 和 iPhone 7 设备。在显示对话框之前,我需要显示一个隐藏在视图控制器中的视图,但在 iPhone 7 中它不会显示,直到我对提词提示采取任何操作。下面是在其他 iOS 上运行良好的代码。将不胜感激。
[callView setHidden:NO];
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:msg];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
与iPhone7无关,与iOS版本有关。
一个简单的解决方案是延迟对 openURL:
的调用,让您的代码有机会完成 callView
.
的隐藏
[callView setHidden:NO];
dispatch_async(dispatch_get_main_queue(), ^{
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:msg];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
});
您还应注意,UIApplication openURL:
方法自 iOS 10 起已弃用。它已被 openURL:options:completionHandler:
取代。在 iOS 10 下,使用这种新方法可能是解决您问题的另一种方法。有关如何根据设备的当前 iOS 版本使用 openURL:
的两个版本的详细说明,请参阅 。
我的应用程序中有电话提示警报对话框。我是 运行 iOS 10.1.1 和 iPhone 7 设备。在显示对话框之前,我需要显示一个隐藏在视图控制器中的视图,但在 iPhone 7 中它不会显示,直到我对提词提示采取任何操作。下面是在其他 iOS 上运行良好的代码。将不胜感激。
[callView setHidden:NO];
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:msg];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
与iPhone7无关,与iOS版本有关。
一个简单的解决方案是延迟对 openURL:
的调用,让您的代码有机会完成 callView
.
[callView setHidden:NO];
dispatch_async(dispatch_get_main_queue(), ^{
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:msg];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
});
您还应注意,UIApplication openURL:
方法自 iOS 10 起已弃用。它已被 openURL:options:completionHandler:
取代。在 iOS 10 下,使用这种新方法可能是解决您问题的另一种方法。有关如何根据设备的当前 iOS 版本使用 openURL:
的两个版本的详细说明,请参阅