iOS 8 UIAlertController 和 UIAlertAction
将alertView 和 actionSheet 封装在UIAlertController 里面化整为零,使开发者更便利
当我们一味的追求高内聚,低耦合的时候,伟大的苹果反其道而行之,这也告诉了我们一个道理:
只有水平高了,内聚也就高了,耦合度自然就低了!哈哈,废话少说,直接上图:
这是整个 demo 的效果图:

下面看看 alert 相关东西的实现,直接上代码:
- (IBAction)alertAction:(id)sender {
UIAlertController * alter = [UIAlertController alertControllerWithTitle:@"通知" message:@"请填写登陆信息!" // 初始化 alert preferredStyle:UIAlertControllerStyleAlert];
[alter addTextFieldWithConfigurationHandler:^(UITextField * textField) {
/*注意:
为 alert 添加textfield 注意 只有preferredStyle
为UIAlertControllerStyleAlert时候才能添加textfield
在回调的block内配置 textfield
*/
[textField setFrame:CGRectMake(0, 50, 44, 200)];
[textField setTextColor:[UIColor blueColor]];
[textField setPlaceholder:@"NAMEFIELD"];
[textField setClearButtonMode:(UITextFieldViewModeWhileEditing)];
[textField setBorderStyle:UITextBorderStyleRoundedRect];
}];
[alter addTextFieldWithConfigurationHandler:^(UITextField * textField) {
[textField setFrame:CGRectMake(0, 100, 60, 200)];
[textField setTextColor:[UIColor blueColor]];
[textField setPlaceholder:@"PASSWORD"];
[textField setSecureTextEntry:YES];
[textField setClearButtonMode:(UITextFieldViewModeWhileEditing)];
[textField setBorderStyle:UITextBorderStyleRoundedRect];
}];
[alter addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
/*
在这里添加动作的实现
*/
NSLog(@"%@---%@",alter.textFields[0].text,alter.textFields[1].text);
}]];
[self presentViewController:alter animated:YES completion:nil]; // 显示 alert
}
代码撸好了,运行,点击alertAction 啪的一声,出现了如下的效果图

下面看看actionSheet 的实现
- (IBAction)actionSheet:(id)sender {
UIAlertController * alert = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
[alert addAction:[UIAlertAction actionWithTitle:@"拍照" style:(UIAlertActionStyleDefault) handler:^(UIAlertAction * action) {
NSLog(@"---拍照获取!");
// 再次添加实现
}]];
[alert addAction:[UIAlertAction actionWithTitle:@"从相册获取" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
NSLog(@"---从相册获取!");
//在此添加实现
}]];
[self presentViewController:alert animated:YES completion:nil];
}
然后运行点击 ,啪的一声:

iOS 8 UIAlertController 和 UIAlertAction的更多相关文章
- iOS关于UITabView和UIAlertController,UIAlertAction以及UINavigation,值修改的传递页面推送
关于UITabView和UIAlertController,UIAlertAction以及UINavigation,值修改的传递 集合嵌套集合的操作 声明 两个必须的的代理 实现部分代码 - (voi ...
- IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容
IOS 修改UIAlertController的按钮标题的字体颜色,字号,内容 UIAlertController *alertVC = [UIAlertController alertControl ...
- iOS开发——UIAlertController
iOS8之后,UIAlertView和UIActionSheet被干掉了,取而代之的是UIAlertController和UIAlertAction. UIAlertController有两种样式,一 ...
- iOS:UIAlertController和UIAlertAction的详解
提示框控制器:UIAlertController 提示框按钮:UIAlertAction 功能:用来提示信息,并给出一些可以进行选择的按钮来处理相应的要求. 注意:在Xcode的iOS8 SD ...
- iOS--UIAlertView与UIAlertController和UIAlertAction之间的事儿
iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备 ...
- iOS 最新UIAlertController
iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.全新的UIPresentationController 在实现视图控制器间的过渡动画效果和自适应设备尺 ...
- iOS学习——UIAlertController详解
在开发中,弹出提示框是必不可少的.这两天项目中统一对已经被iOS API废弃的UIAlertView和UIActionSheet进行替换,我们知道,UIAlertView和UIActionSheet都 ...
- UIAlertController、UIAlertAction 警告框
NS_CLASS_AVAILABLE_IOS(8_0) @interface UIAlertAction : NSObject <NSCopying> //创建操作 + (instan ...
- iOS通过UIAlertController弹出底部选择框来调用相机或者相册
UIAlertController *alertVc = [UIAlertController alertControllerWithTitle:nil message:nil preferredSt ...
随机推荐
- PHP $_SERVER['HTTP_REFERER'] 获取前一页面的 URL 地址
转载:http://www.5idev.com/p-php_server_http_referer.shtml 使用 $_SERVER['HTTP_REFERER'] 将很容易得到链接到当前页面的前一 ...
- Java通配符解惑
T 有类型 ? 未知类型 一.通配符的上界 既然知道List<Cat>并不是List<Anilmal>的子类型,那就需要去寻找替他解决的办法, 是AnimalTrianer ...
- scipy.optimize.minimize 解决实际问题
接上博客问题http://www.cnblogs.com/shizhenqiang/p/8274806.html # coding=utf-8 from scipy import optimize i ...
- Windows核心编程&内核对象
1. 一个进程在初始化时,系统将会他分配一个空的句柄表,这个句柄表仅供内核对象使用,不供用户对象和GDI对象使用.进程在首次 初始化时,该句柄表为空.句柄表是一个由数据结构组成的数组,包含一个内核对象 ...
- Servlet--ServletInputStream类,ServletOutputStream类
ServletInputStream类 定义 public abstract class ServletInputStream extends InputStream 这个类定义了一个用来读取客户端的 ...
- linkin大话面向对象--包和导入
我们现在的代码都扔在一个文件夹里面,比如以后我们做项目,是不是有可能有非常非常多的代码,那我就希望把不同功能和模块的类方便管理,放到不同的文件夹下,引出包概念. 什么是包,就一个文件目录,为了处理重名 ...
- nodejs爬虫笔记(四)---利用nightmare解决加载更多问题
目标: 解决页面加载更多问题.笔记三中,我们只爬取到网页的部分信息,而点击加载更多后的页面内容是没有提取到的.开始我的想法是找到加载更多的数据接口(可参照:http://www.jianshu.com ...
- 二级缓存:EHCache的使用
EHCache的使用 在开发高并发量,高性能的网站应用系统时,缓存Cache起到了非常重要的作用.本文主要介绍EHCache的使用,以及使用EHCache的实践经验. 笔者使用过多种基于Java的开源 ...
- struts2.xml的配置问题
1.<package namespace="/"></package> namespace决定访问action的路径: 如果省略,将代表任意路径: 2.&l ...
- AM解调的FPGA实现
一.说明: 功能:AM解调 平台:Vivado 2016.4 和 Matlab R2017a 二.原理: 1.AM解调原理 模拟电路中采用"包络检波"的方法: 数字电路中采用类似的 ...