本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/35551769

IOS8中,Apple将UIActionSheet和UIAlertView整合成一个接口UIAlertController。

原来的是一个view,展示在window视图之上。现在改成了controller,展示方式变成由当前的controller直接present出来。

下面看看具体的接口:

  1. UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"This is Title"
  2. message:@"This is message"
  3. preferredStyle:UIAlertControllerStyleAlert];
  4. [alert addAction:[UIAlertAction actionWithTitle:@"Action 1 (Default Style)"
  5. style:UIAlertActionStyleDefault
  6. handler:^(UIAlertAction *action) {
  7. NSLog(@"Action 1 Handler Called");
  8. }]];
  9. [alert addAction:[UIAlertAction actionWithTitle:@"Action 2 (Cancel Style)"
  10. style:UIAlertActionStyleCancel
  11. handler:^(UIAlertAction *action) {
  12. NSLog(@"Action 2 Handler Called");
  13. }]];
  14. [alert addAction:[UIAlertAction actionWithTitle:@"Action 3 (Destructive Style)"
  15. style:UIAlertActionStyleDestructive
  16. handler:^(UIAlertAction *action) {
  17. NSLog(@"Action 3 Handler Called");
  18. }]];
  19. [self presentViewController:alert animated:YES completion:nil];
  1. <span style="font-family:Arial, Helvetica, sans-serif;">生成UIAlertController的时候可以指定title、message,通过preferredStyle可以指定具体是Alert还是</span><span style="color: rgb(61, 29, 129); font-family: Menlo; font-size: 14px;">ActionSheet</span>
  1. typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
  2. UIAlertControllerStyleActionSheet = 0,
  3. UIAlertControllerStyleAlert
  4. } NS_ENUM_AVAILABLE_IOS(8_0);

通过addAction接口添加具体按钮,设置按钮title、style和使用block方式直接加入按钮响应接口。

style有以下几种:

  1. typedef NS_ENUM(NSInteger, UIAlertActionStyle) {
  2. UIAlertActionStyleDefault = 0,
  3. UIAlertActionStyleCancel,
  4. UIAlertActionStyleDestructive
  5. } NS_ENUM_AVAILABLE_IOS(8_0);

与原来的UIActionSheet和UIAlertView比较:

1、视觉上没有改变,跟之前的样式保持一致;

2、改为controller方式后,控件的生命周期能够更好的控制;方便的弹出和收起

3、当前controller弹出UIAlertController后,再次present controller必须在UIAlertController的基础上present。present后,UIAlertController会被盖住。而之前的UIActionSheet和UIAlertView由于是add在window上面的,当在弹出他们的controller基础上再present controller的话,UIActionSheet和UIAlertView弹框仍然保留在最上方。

4、修改为controller方式后,接口更加简单,而且按钮响应方式更加明了简介,不需要在设置delegate和实现响应的回调等。

IOS8 UIAlertController 弹框的更多相关文章

  1. UIAlertController:弹框4步走

    对于大多数的App来说,弹框这种交互方式基本上是必不可少的.在新的iOS系统中(具体版本我忘了),以前的UIAlertView被弃用,而换成了现在的UIAlertController. UIAlite ...

  2. iOS8 UIAlertController弹出框中添加视图(例如日期选择器等等)

    UIDatePicker *datePicker = [[UIDatePicker alloc] init]; datePicker.datePickerMode = UIDatePickerMode ...

  3. IOS 弹框AlterView的使用(IOS8.0以前使用)UIAlertController(IOS9.0使用)

    #pragma mark - 代理方法 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath ...

  4. ios-消息弹框之UIAlertView, UIActionSheet以及UIAlertController小结

    首先storyboard中创建对应按钮并拖线,来演示不同的效果 首先点击了actionSheet按钮效果如图 实现弹框需要遵守设置代理,遵守协议. 效果就是从底部向上弹起来的框框. 通过对按钮的点击输 ...

  5. 参考bootstrap中的popover.js的css画消息弹框

    前段时间小颖的大学同学给小颖发了一张截图,图片类似下面这张图: 小颖当时大概的给她说了下,其实小颖也不知道上面那个三角形怎么画嘻嘻,给她说了DOM结构,具体的css让她自己百度,今天小颖自己参考boo ...

  6. 安卓客户端a标签长按弹框提示解决办法

    昨天工作时候发现一个bug,是关于a标签的,在安卓客户端中,如果是a标签的话,长按会出现一个弹框,如图所示 是因为安卓客户端的长按触发机制,以后进行wap端开发的时候,如果用到跳转页面尽量不要用a标签 ...

  7. Jquary入门(添加 修改 表单元素)+ JSON+弹框

    字符串拼接 计算机语言 都是 对  数据的处理(获取/修改数据)  添加元素  除了  固定的方法添加 以外 都是   字符串拼接(拼接成固定格式即可执行). 1.表单添加元素  append() 方 ...

  8. ios UIWebView自定义Alert风格的弹框

    之前开发过一个App,因为公司之前写好了网页版的内容和安卓版本的App,我进去后老板要求我ios直接用网页的内容,而不需要自己再搭建框架.我一听,偷笑了,这不就是一个UIWebView吗?简单! 但是 ...

  9. weui 弹框中的单选效果

    <!--性别修改弹框--> <div class="weui_dialog_alert" id="doctorSexDialog" style ...

随机推荐

  1. Yii关联查询(转载)

    原文链接:http://keshion.iteye.com/blog/1607994 一.多表关联的配置 在我们使用 AR 执行关联查询之前,我们需要让 AR 知道一个 AR 类是怎样关联到另一个的. ...

  2. 不要使用 reader.Peek() 去读取每行数据

    1.问题描述 使用SteamRead的Peek()和ReadLine()来读取流中的数据,如果数据行数太多,会读取不完整(后面有些数据就读不出来了). 比如: while (srResponseRea ...

  3. AC日记——[USACO09JAN]全流Total Flow 洛谷 P2936

    题目描述 Farmer John always wants his cows to have enough water and thus has made a map of the N (1 < ...

  4. python 操作系统和进程

    一. 操作系统介绍 多道程序系统 多道程序设计技术       所谓多道程序设计技术,就是指允许多个程序同时进入内存并运行.即同时把多个程序放入内存,并允许它们交替在CPU中运行,它们共享系统中的各种 ...

  5. JVM 常量池

    最近正好在研究这个问题,题主问题本身是有问题的,在JDK7中HotSpot的常量池是放在Java Heap中,并非题目中的native memory中.在JDK6中是放在Perm Space.题主可以 ...

  6. 搭建高可用服务注册中心-Spring Cloud学习第一天(非原创)

    文章大纲 一.Spring Cloud基础知识介绍二.创建单一的服务注册中心三.创建一个服务提供者四.搭建高可用服务注册中心五.项目源码与参考资料下载六.参考文章   一.Spring Cloud基础 ...

  7. iOS -- YYText富文本

    NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString: [NSString strin ...

  8. iOS开发 Coretext基本用法

    转至 http://blog.csdn.net/fengsh998/article/details/8691823 API接口文档. https://developer.apple.com/libra ...

  9. Java Unsafe类

    参考了这篇文章:http://blog.csdn.net/aesop_wubo/article/details/7537278 <JAVA并发编程学习笔记之Unsafe类> Unsafe开 ...

  10. vim 树形菜单插件NERDTree 的安装

    vim 树形菜单插件的安装 NERDTree 1. mkdir ~/.vim cd ~/.vim mkdir bundle mkdir autoload 2.  curl -Sso ~/.vim/au ...