With pre-iOS 8 we had to use the UIAlertView
and UIActionSheet
Which we weren't allowed to mess with the view hierarchy or subclass on either them.
UIAlertView
Documentation
The UIAlertView class is intended to be used as-is and does not support subclassing. The view hierarchy for this class is private and must not be modified.
UIActionSheet
Documentation
UIActionSheet is not designed to be subclassed, nor should you add views to its hierarchy. If you need to present a sheet with more customization than provided by the UIActionSheet API, you can create your own and present it modally with presentViewController:animated:completion:.
However with iOS8 Apple have introduced UIAlertController
to replace both UIAlertView
and UIActionSheet
(Check the pre-release documentation here).
So in this pre-release documentation there is nothing about not being able to subclass or change the view heirarchy, it even has this method addTextFieldWithConfigurationHandler:
so will we be able to change the view heirarchy and/or subclass UIAlertController
without worrying whether Apple will approve or reject our applications?
An object that displays an alert message.
You can dismiss the alert by calling dismissViewControllerAnimated method on alertController object.
To create an action button that the user can tap on, we will need to create a new instance of an UIAlertAction class and add it to our alert object. To add one more button to UIAlertController simply create a new UIAlertAction object and add it to the alert.
It's a late response, but directly from Apple docs.
The UIAlertController class is intended to be used as-is and does not support subclassing. The view hierarchy for this class is private and must not be modified.
So, you shouldn't subclass UIAlertController.
This answer is outdated. Please refer to limon's answer.
ViewController != View
. Apple's policy of not changing the appearance of an UIAlertView
does not affect the presenting view controller. I see no reason why you shouldn't be able to subclass the UIAlertController. But using it may be making it harder to replace the alert view with something custom grown, as the alert view is now only created indirectly by classes out of your control. And for UIAlertView same rules applies as before.
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