2016-11-09 81 views
0

我的應用程序中有telprompt警報對話框。我在iOS 10.1.1和iPhone 7設備上運行。在顯示對話框之前,我需要顯示一個在視圖控制器中隱藏的視圖,但在iPhone 7中它不會顯示,直到我對teleprompt採取任何操作。下面是在其他iOS上正常工作的代碼。您的幫助將不勝感激。在iOS中顯示視圖之前的Teleprompt警報對話框顯示

[callView setHidden:NO]; 
NSString *phoneNumber = [@"telprompt://" stringByAppendingString:msg]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 

回答

1

它與iPhone 7無關。它與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下,使用這種新方法可能是解決您的問題的另一種方法。請參閱https://stackoverflow.com/a/39767062/1226963瞭解如何使用兩個版本的openURL:,具體取決於設備的當前iOS版本。

+0

謝謝我的問題是通過給定的堆棧溢出鏈接來解決的。 –