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 } }
My solution is an Objective-C category for UIAlertViewController. Simply include UIAlertController+supportedInterfaceOrientations.h in any classes that use UIAlertController
UIAlertController+supportedInterfaceOrientations.h
// // UIAlertController+supportedInterfaceOrientations.h #import <UIKit/UIKit.h> @interface UIAlertController (supportedInterfaceOrientations) @end
UIAlertController+supportedInterfaceOrientations.m
// // UIAlertController+supportedInterfaceOrientations.m #import "UIAlertController+supportedInterfaceOrientations.h" @implementation UIAlertController (supportedInterfaceOrientations) #if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000 - (NSUInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } #else - (UIInterfaceOrientationMask)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; } #endif @end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With