1.我为何要写这篇博客记录它?学习
答:由于 UIAlertView和UIActionSheet 被划线了 苹果不推荐咱们使用这两个类了,也再也不进行维护和更新,为了之后方便使用我来记录一下。如图所示spa
正如苹果所说它如今让咱们用UIAlertConntroller(其实iOS 8.0就可使用这个类了) 并设置样式为UIAlertcontrollerStyleAlert 就是原来的UIAlertView了,同理UIAlertcontrollerStyleActionSheet就是UIActionSheet。3d
2.那若是继续使用UIAlertView 和 UIActionSheet 这两个控件会不会有问题? 该如何选择使用哪一个呢?代理
答:继续使用不会有问题,就像之前过时的API同样 咱们同样可使用,可是苹果不会对其进行更新和维护了,就是说可能之后会有新功能,或者bug 苹果都不会对这两个控件进行更新了。对于选择,我的认为苹果既然取代了这两个类确定是有缘由的,多是控件拓展起来不便,也多是维护起来繁琐,使用起来麻烦等等吧,既然苹果推荐咱们用UIAlertController 那咱们就乖乖用好了。何况我用过发现比之前那两个控件好用不少。blog
3.怎么使用UIAlertController呢?博客
答:废话很少说直接上代码。以下所示:it
/* io
类方法快速建立一个提示控制器 值得注意的是这个控制器有个preferreStyle属性你能够根据这个属性来肯定是使用UIAlertView 仍是 UIActionSheet bug
UIAlertControllerStyleActionSheet方法
UIAlertControllerStyleAlert
*/
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"显示的标题" message:@"标题的提示信息" preferredStyle:UIAlertControllerStyleAlert];
[alertController addAction:[UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"点击取消");
}]];
[alertController addAction:[UIAlertAction actionWithTitle:@"肯定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"点击确认");
}]];
[alertController addAction:[UIAlertAction actionWithTitle:@"警告" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
NSLog(@"点击警告");
}]];
[alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
NSLog(@"添加一个textField就会调用 这个block");
}];
// 因为它是一个控制器 直接modal出来就行了
[self presentViewController:alertController animated:YES completion:nil];
4.UIAlertController有什么好处?
答:省去了繁琐的代理方法,原来的控件点击每一个功能按钮调用方法 还得调用代理方法 要否则就是本身封装一下,如今好了 由一个控制器来管理 操做方便了些 并且每一个功能键都很清晰,点击调用的方法都写在block回调中这样方便了不少不是吗? 并且将原来的两个控件合二为一。咱们能够自行再次对其封装 使用会更加方便。
若是有不对的地方还请多多指教(QQ:234009184),我将怀着谦卑的心,努力学习。