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 ...
随机推荐
- 基于Vue的小日历(支持按周切换)
基于Vue的日历小功能,可根据实际开发情况按每年.每月.每周.进行切换 <template> <div class="date"> <!-- 年份 ...
- 把要写的内容做个list,半年过去了
先说点题外话,来国家气象局的第三周,今天出去和丁书记吃了个饭,基本在聊大学时候的人和事,好像都没怎么变,只是不联系的人愈发不会再联系. 抛开学校的课程不谈,半年做了三件事:CUMT校园导航 / Ope ...
- ios开发 第三天
1.复合 对象可以引用其它对象,可以利用其它对象提供的特性. 通过包含作为实例变量的对象指针实现的. 2.OC是单一继承 3.继承-重构 4.类实例化对象时,self指向了对象的首地址. 类对象isa ...
- Activity内切换fragment实现底部菜单切换遇到的坑
1.一般说来,app底部导航都会设计为5个菜单,可以使用textView,也可使用radioButton,这里我选择用radioButton,给radioButton直接设置selector就可以实现 ...
- LINUX下文件编译
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- JavaScript 字符串与对象互换
对象转字符串: var str = JSON.stringify(obj); 字符串转对象: var str = JSON.parse(str);
- (1-2)SpringCloud:服务的消费者rest+ribbon
服务发现的任务是由Eureka客户端完成,而服务的消费任务由Ribbon完成.Ribbon是一个基于HTTP和TCP的客户端负载据衡器,它可以通过客户端中配置ribbonServerList服务端列表 ...
- python_如何设置文件缓冲类型
案例: 将文件内容写入到硬件设备时候,使用系统调用,这类IO操作时间长,为了减小IO操作,通常会使用缓冲区(有足够多数据才能调用). 文件缓冲行为分为:全缓冲,行缓冲,无缓冲 如何解决? open(' ...
- Java多线程之线程的同步
Java多线程之线程的同步 实际开发中我们也经常提到说线程安全问题,那么什么是线程安全问题呢? 线程不安全就是说在多线程编程中出现了错误情况,由于系统的线程调度具有一定的随机性,当使用多个线程来访问同 ...
- SQL Server——存储过程
我想从下面几个方面大概的讲述下存储过程,可能有些知识点是你没有注意的,也可能有些知识点我不知道,欢迎大家指点指点.如有不足,欢迎指教! 存储过程概念 存储过程优点 存储过程的接口 存储过程的解析.编译 ...