9

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?

Popeye
  • 11,839
  • 9
  • 58
  • 91

2 Answers2

29

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.

limon
  • 3,222
  • 5
  • 35
  • 52
1

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.

vikingosegundo
  • 52,040
  • 14
  • 137
  • 178
  • I have given +1. However this is only because I have decided not to accept an answer until iOS8 is officially released. I hope when it is, this will have been confirmed and hopefully you will provide an up to date answer (If it is required) – Popeye Jun 23 '14 at 10:06
  • Don't mean to intrude... but in relation to subclassing UIAlertController, I'm just after posting this question- any thoughts? http://stackoverflow.com/q/26935703/343343 – VLostBoy Nov 14 '14 at 18:48
  • can sub-classing it cause App rejection? – Swasidhant May 14 '18 at 12:44
  • in my experience anything can lead to a rejection. or not. you never know. But yes, a reviewer with a bad day might justify the rejection with this. or not. you never know. – vikingosegundo May 14 '18 at 19:24