When two alert present one by one, i means one alert present and over them another alert presenting and app crashing.
I have used UIAlertController
to display alert. App crashing only in iOS 9 device.
Please help me at this point.
This is a bug in iOS 9 that it failed to retrieve the supportedInterfaceOrientations
for UIAlertController
. And it seems it dropped to an infinite recursion loop in looking for the supportedInterfaceOrientations
for UIAlertController
(e.g., it tracks back to UIAlertControler
-> UIViewController
-> UINavigationController
-> UITabBarController
-> UIAlertController
-> ...), while the call to UIAlertController:supportedInterfaceOrientations
actually is not implemented/overridden in the source code.
In my solution, I just added the following piece of code:
extension UIAlertController {
public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.Portrait
}
public override func shouldAutorotate() -> Bool {
return false
}
}
Then UIAlertController
will directly return the supported orientation value without infinite loop. Hope it helps.
Edit: Swift 3.0.1
extension UIAlertController {
open override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return UIInterfaceOrientationMask.portrait
}
open override var shouldAutorotate: Bool {
return false
}
}