从iOS8开始,UIAlertView和UIActionSheet都不再推荐了,应该开始使用一个新的API,UIAlertController
UIAlertController继承自UIViewController,所以显示的方法不是show,而是普通的present。另外,如果程序用了这个API,那么在iOS7上会导致crash,所以需要版本兼容
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];
UIAlertAction *confirm = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
[mainViewDelegate doBackupWithTag:BACKUP_STATISTICS_TAG_CONFIRM];
}];
[alert addAction:cancel];
[alert addAction:confirm];
[self presentViewController:alert animated:YES completion:nil];
可以看到,最大的区别,是UIAlertController不再使用delegate的方式来触发回调,而是直接传一个block
delegate和block并没有本质区别,只是触发回调的不同方式而已,解决的都是“在未来的某个时间,调用我”的问题。delegate的复用性更好一点,创建一个delegate实例之后,可以把它设置为多个控件的delegate,减少了重复。block的优势是更加直观,阅读起来更容易,因为代码都在一处,不需要跳来跳去地读代码
但是现在既然苹果官方使用block的频率越来越高,或许这也代表了一种趋势
分享到:
相关推荐
快捷修改UIAlertController的Title和message的颜色,支持UIAlertAction三种模式颜色的修改
ios demo,UIAlertController_supportedInterfaceOrientations,警告框,操作表的实例
UIAlertController系统的一个小demo,自己写着玩,适合初学者,望多指教
对UIAlertController进行了封装,iOS8 苹果增加了UIAlertController,把UIAlertView和UIActionSheet集成到一个类里。UIAlertView使用起来比较繁琐,需要实现代理,然后在代理的方法里对多个事件进行判断和处理。代码...
苹果在iOS8推出了全新的UIAlertController,旧的UIAlertView和UIActionSheet渐渐被废弃,但如果你仍然支持iOS7系统,你将不得不写两套代码。这个库解决了这个问题。 Github地址:...
对系统iOS 8之后的UIAlertView 和 UIAlertSheet进行的简单封装, 方便使用
UIAlertController是iOS8推出的新概念,取代了之前的 UIAlertView和UIActionSheet(虽然现在仍可以使用,但是会有警告)。下面这篇文章主要给大家介绍了关于iOS中UIAlertController如何设置自定义标题与内容的相关...
UIAlertController的简单实用,适合不熟悉这个类的初学者,从UIAlertView转过来使用!
IOS开发 UIAlertController详解 在iOS 8.0后,苹果弃用了UIAlertView和UIActionSheet,转而使用UIAlertController把之前的UIAlertView和UIActionSheet整合在一起。新版的API变得简洁了不少几行代码就可实现之前一...
作者caixindong,源码XDAlertController,解决iOS8以下UIAlertController无法使用的问题 More Infomation 在iOS7环境下调用UIAlertController会崩溃,所以通过判断系统的版本号来调用不同的API; 通过Method ...
作者Lanmaq,源码MLCompatibleAlert,iOS8推出了全新的UIAlertController,UIAlertView(9.0)和UIActionSheet(8.3)被废弃,MLCompatibleAlert做了下兼容,支持动态添加Button,支持Pod
在屏幕不旋转的情况下,强制旋转系统的UIAlertController!
两种实现屏幕旋转控制的方法,第一种适合于全局控制,第二种适合于局部控制
UIAlertController 适用于iOS的UIAlertController示例 显示动作表 UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert" message:@"This is an action sheet." preferredStyle:...
作者efremidze,源码LEAlertController,LEAlertController 是 iOS7 上一个轻量级的 UIAlertController 扩展。
在iOS8.0之前 我们可以使用UIAlertView 和 UIActionSheet 但是在9.0之后 官网默认用UIAlertController取代了这两个 在弹框上面选择省市区 按钮一是ActionSheet模式 按钮二是AlertView模式 欢迎各位童鞋学习使用 QQ...
Swift UIButton 和 UIAlertController详解,改变UIAlertController的字体颜色和字体大小