IOS8 : UIAlertController
UIAlertController 和 UIAlertAction 用法:
1. 最简单的提醒视图:
这里我们实现一个最简单的提醒视图,包含1个标题,1行信息,1个按键,按下按键后,什么都不发生:
- - (IBAction)doAlert:(id)sender {
- // 准备初始化配置参数
- NSString *title = @"Alert Button Selected";
- NSString *message = @"I need your attention NOW!";
- NSString *okButtonTitle = @"OK";
- // 初始化
- UIAlertController *alertDialog = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
- // 创建操作
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:okButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // 操作具体内容
- // Nothing to do.
- }];
- // 添加操作
- [alertDialog addAction:okAction];
- // 呈现警告视图
- [self presentViewController:alertDialog animated:YES completion:nil];
- }
进入程序后,点击“Alert Me!”按钮可触发这个提醒框,如图所示:
- - (IBAction)doMultiButtonAlert:(id)sender {
- // 准备初始化配置参数
- NSString *title = @"Alert Button Selected";
- NSString *message = @"I need your attention NOW!";
- NSString *okButtonTitle = @"OK";
- NSString *neverButtonTitle = @"Never";
- NSString *laterButtonTitle = @"Maybe Later";
- // 初始化
- UIAlertController *alertDialog = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
- // 分别3个创建操作
- UIAlertAction *laterAction = [UIAlertAction actionWithTitle:laterButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // 普通按键
- self.userOutput.text = @"Clicked 'Maybe Later'";
- }];
- UIAlertAction *neverAction = [UIAlertAction actionWithTitle:neverButtonTitle style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
- // 红色按键
- self.userOutput.text = @"Clicked 'Never'";
- }];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:okButtonTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- // 取消按键
- self.userOutput.text = @"Clicked 'OK'";
- }];
- // 添加操作(顺序就是呈现的上下顺序)
- [alertDialog addAction:laterAction];
- [alertDialog addAction:neverAction];
- [alertDialog addAction:okAction];
- // 呈现警告视图
- [self presentViewController:alertDialog animated:YES completion:nil];
- }
3个按键分别代表了3种不同类型的按键,分别是默认按键(普通)、销毁按键(红色)和取消按键(粗体)。从代码看其实就是在上一个的基础上加了3个 UIAlertAction 而已,然后分别设置不同的 style,效果如下:
- - (IBAction)doAlertInput:(id)sender {
- // 准备初始化配置参数
- NSString *title = @"Email Address";
- NSString *message = @"Please enter your your email address:";
- NSString *okButtonTitle = @"OK";
- // 初始化
- UIAlertController *alertDialog = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert];
- // 创建文本框
- [alertDialog addTextFieldWithConfigurationHandler:^(UITextField *textField){
- textField.placeholder = @"Your Email";
- textField.secureTextEntry = NO;
- }];
- // 创建操作
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:okButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // 读取文本框的值显示出来
- UITextField *userEmail = alertDialog.textFields.firstObject;
- self.userOutput.text = userEmail.text;
- }];
- // 添加操作(顺序就是呈现的上下顺序)
- [alertDialog addAction:okAction];
- // 呈现警告视图
- [self presentViewController:alertDialog animated:YES completion:nil];
- }
在创建操作前先创建文本框,以便后面的按键可以操作文本框内容。创建文本框也只是用了一个简单的方法而已,想创建更多文本框就再使用多次这个方法即可,程序效果如下:
4. 提醒图表
- - (IBAction)doActionSheet:(id)sender {
- // 准备初始化配置参数
- NSString *title = @"Alert Button Selected";
- NSString *message = @"I need your attention NOW!";
- NSString *okButtonTitle = @"OK";
- NSString *neverButtonTitle = @"Never";
- NSString *laterButtonTitle = @"Maybe Later";
- // 初始化
- UIAlertController *alertDialog = [UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleActionSheet];
- // 分别3个创建操作
- UIAlertAction *laterAction = [UIAlertAction actionWithTitle:laterButtonTitle style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
- // 普通按键
- self.userOutput.text = @"Clicked 'Maybe Later'";
- }];
- UIAlertAction *neverAction = [UIAlertAction actionWithTitle:neverButtonTitle style:UIAlertActionStyleDestructive handler:^(UIAlertAction *action) {
- // 红色按键
- self.userOutput.text = @"Clicked 'Never'";
- }];
- UIAlertAction *okAction = [UIAlertAction actionWithTitle:okButtonTitle style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
- // 取消按键
- self.userOutput.text = @"Clicked 'OK'";
- }];
- // 添加操作(顺序就是呈现的上下顺序)
- [alertDialog addAction:laterAction];
- [alertDialog addAction:neverAction];
- [alertDialog addAction:okAction];
- // 呈现警告视图
- [self presentViewController:alertDialog animated:YES completion:nil];
- }
效果如图:
IOS8 : UIAlertController的更多相关文章
- IOS8 UIAlertController 弹框
本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/35551769 IOS8中,Apple将UIActionSheet和UIAlertVi ...
- iOS8 UIAlertController弹出框中添加视图(例如日期选择器等等)
UIDatePicker *datePicker = [[UIDatePicker alloc] init]; datePicker.datePickerMode = UIDatePickerMode ...
- 升级IOS8游戏上传自定义头像功能失效的问题
为了支持arm64,之前已经折腾了很久,昨晚打包准备提交苹果审核时,测试那边的同事反馈说游戏上传自定义头像功能不可用了. 游戏上传自定义功能的简介:卡牌游戏最初是<比武招亲>中有一个充VI ...
- UIAlertController custom font, size, color
本文转载至 http://stackoverflow.com/questions/26460706/uialertcontroller-custom-font-size-color up vote2d ...
- iOS改变UIAlertView、UIActionSheet、UIAlertController系统字体颜色
废话不多说,直接上代码,效果是最好的说服力 1.改变UIAlertView字体颜色 [UIView appearance].tintColor = [UIColor greenColor]; 个人还是 ...
- iOS开发之UIAlertController的适配
在iOS8中,只能用UIAlertController.而原来的UIAlertView及UIActionSheet已经被抛弃掉了.但是如果一台iOS 7 的手机运行到有UIAlertControlle ...
- UIActionSheet 修改字体颜色
-(void)willPresentActionSheet:(UIActionSheet *)actionSheet { SEL selector = NSSelectorFromString(@&q ...
- UIAlertViewController+TextField 输入框
if (IOS8) { UIAlertController *alertController=[UIAlertController alertControllerWithTitle:CustomLoc ...
- runtime查找 UIAlertAction 的key 及 UIActionSheet 设置字体颜色
修改不了颜色了 结果发现kvo 的key 不对 哎 直接上代码 设置正确的属性找到对应的key 还以为iOS 11改变了方法 unsigned int count; Ivar *ivars = c ...
随机推荐
- php 模式
设计模式1.单例模式类的计划生育1.让该类在外界无法造对象2.让外界可以造一个对象,做一个静态方法返回对象3.在类里面通过静态变量控 class Dog { static $dx; public $t ...
- 写一个程序,统计自己C语言共写了多少行代码。ver2.00
概要 完成一个程序,作用是统计一个文件夹下面所有文件的代码行数.输入是一个文件夹的绝对路径,输出是代码行数.所以此程序的新特点有两个: 统计某一文件夹下的所有文件: 可以任意指定本机硬盘上任何位置的某 ...
- redhat在线安装chrome浏览器
开始的时候是参考吹尽黄沙始到金的文章http://www.cnblogs.com/effective/archive/2012/03/18/2405189.html 1.创建一个文件/etc/yum. ...
- Oracle数据库和实例的区别
一般Oracle数据库(Oracle Database)可以分为两部分,即实例(Instance)和数据库(Database). 实例:是一个非固定的.基于内存的基本进程与内存结构.当服务器关闭后,实 ...
- VIM 第二天--快捷键
好吧,今天是重新学习vim的第二天,不得不说,收货丰厚. 先来勉励一下自己: 存活(目前状态) 感觉很好 感觉更好,更强,更快 吃用vim超能力 vimtutor练到lesson 7了,略微总结一下, ...
- tomcat 修改网站路径(Java之负基础实战)
1.找到server.xml 在tomcat安装路径/conf/server.xml 2.搜索webapps 添加 <Context path="" docBace=&quo ...
- php防止重复提交表单
解决方案一:引入cookie机制来解决 提交页面代码如下a.php代码如下: <form id="form1" name="form1" method=& ...
- Linux下配置Apache最大连接数
最近有博友发现我的博客经常http 503,博客负载不大,应该不会出现负载问题,很有可能就是Apache最大连接数原因,Apache默认支持150个连接.1.先要修改最大连接数,必须了解Apache的 ...
- Viso设置背景
文件 > 形状 > 其它Visio方案 > 背景
- js控制href内容的连接内容的变化
html: <a data-toggle="modal" href="#myModal_devices" id="check_devices&q ...