在 iOS 8 之前,我们必须使用UIAlertView
andUIActionSheet
我们不允许弄乱它们的视图层次结构或子类。
UIAlertView 类旨在按原样使用,不支持子类化。此类的视图层次结构是私有的,不得修改。
UIActionSheet 不是为子类而设计的,也不应该将视图添加到它的层次结构中。如果您需要呈现比 UIActionSheet API 提供的自定义更多的表单,您可以创建自己的表单并使用 presentViewController:animated:completion: 以模态方式呈现它。
然而,对于 iOS8,Apple 已经引入UIAlertController
了替换这两个UIAlertView
和(在此处UIActionSheet
查看预发布文档)。
因此,在这个预发布文档中,没有关于不能子类化或更改视图层次结构的问题,它甚至有这个方法addTextFieldWithConfigurationHandler:
,所以我们能够更改视图层次结构和/或子类UIAlertController
,而不用担心 Apple 是否会批准或拒绝我们的应用程序?