关闭

UIAlertController的使用

标签: ios
126人阅读 评论(0) 收藏 举报
分类:
从iOS8开始,UIAlertView和UIActionSheet都不再推荐了,应该开始使用一个新的API,UIAlertController
UIAlertController继承自UIViewController,所以显示的方法不是show,而是普通的present。另外,如果程序用了这个API,那么在iOS7上会导致crash,所以需要版本兼容
Objc代码  收藏代码
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的频率越来越高,或许这也代表了一种趋势
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22709次
    • 积分:691
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:64篇
    • 译文:1篇
    • 评论:0条
    文章分类