IOS开发 UIAlertController详解及实例代码

 IOS开发 UIAlertController详解

在iOS 8.0后,苹果弃用了UIAlertView和UIActionSheet,转而使用UIAlertController把之前的UIAlertView和UIActionSheet整合在一起。新版的API变得简洁了不少几行代码就可实现之前一大片代码的功能

 UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert"
                                  message:@"This is an alert."
                              preferredStyle:UIAlertControllerStyleAlert];

  UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
                             handler:^(UIAlertAction * action) {
                               NSLog(@"你好你好");
                             }];

  UIAlertAction* defaultAction2 = [UIAlertAction actionWithTitle:@"OK2" style:UIAlertActionStyleDefault
                             handler:^(UIAlertAction * action) {
                               NSLog(@"你好你好");
                             }];

  [alert addAction:defaultAction];
  [alert addAction:defaultAction2];
  [self presentViewController:alert animated:YES completion:nil];

初始化AlertView没有太大区别,主要区别就是添加事件。苹果公司新添加了UIAlertAction专门用来添加事件。一个Action对应一个事件,添加到alert上就可以使用。

切换为ActionSheet只需要修改preferredStyle为UIAlertControllerStyleActionSheet

也可以添加输入框代码如下

  [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
    textField.placeholder = @"输入用户名";
  }];

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • iOS中UIAlertController设置自定义标题与内容的方法

    前言 相信大家都知道,UIAlertController的标题和内容都是黑色的(对UIAlertController不了解的朋友可以参考这篇文章),但是在很多场景下都需要修改他们的颜色,比如在输入错误时把提示信息变为红色,或者自定义标题的颜色,可是在公开的API接口中好像并没有对应的方法,那么我们应该怎么做呢?下面话不多说了,来一起看看详细的介绍: 第三方控件 第一种方法当然就是使用第三方的Alert控件了,现在Github上有着众多的Alert控件(如SCLAlertView等),相信有很多都

  • 在 Swift 中测试 UIAlertController的方法

    最近我读了一篇在 Objective-C 中使用 control swizzling 测试 UIAlertController 的 文章 .这样的文章总是促使我寻找一种不使用 control swizzling 也可以测试同样东西的方法.虽然,我知道 swizzling 是开发者的一个非常有力的工具,但我个人是尽可能去避免去使用它的.事实上,在最近的六年时间里,我只在一个应用上用了 swizzling.所以我相信我们现在可以不使用 swizzling 来实现测试. 那么问题来了,如何在 Swif

  • IOS开发 UIAlertController详解及实例代码

     IOS开发 UIAlertController详解 在iOS 8.0后,苹果弃用了UIAlertView和UIActionSheet,转而使用UIAlertController把之前的UIAlertView和UIActionSheet整合在一起.新版的API变得简洁了不少几行代码就可实现之前一大片代码的功能 UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"My Alert" messag

  • IOS 自定义UIPickView详解及实例代码

    IOS 自定义UIPickView 苹果一直推崇使用原生的组件,自带的UIPickView其实也很漂亮了,看起来也很美观.但是有时候,产品会有一些特殊的设计和需求.本文将会讲解如何修改苹果原生的组件的属性,达到自定义UIPickView的效果. 需求如下.需要自定义一个Tab.自定义选中文字的颜色.自定义选中颜色背景,自定义未选中文字颜色. 修改未选中的文字的字体和颜色 经过分析,上面的取消和确定按钮实现起来还是很简单的.加一个条就好了,我就不介绍具体步骤,下面的没有选中时候文字的样色,已经字体

  • IOS 数据存储详解及实例代码

    iOS应用数据存储的常用方式 XML属性列表(plist)归档 Preference(偏好设置) NSKeyedArchiver归档(NSCoding) SQLite3 Core Data 1. XML属性列表(plist)归档 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒. 应用沙盒结构分析: 应用程序包:包含了所有的资源文件和可执行文件 Documents:保存应用运行时生成的需要持久化的数据,iTunes

  • IOS 指纹识别详解及实例代码

    IOS 指纹识别,这里整理下项目中用的知识. IOS 指纹识别现在,在要求安全与效率兼得的时候,普通密码已不能满足我们的要求,指纹识别就这样诞生了. 每个人都有自己专属的指纹,在需要支付等输入密码的地方,我们只需轻轻一按即可,避免了输入密码的繁琐步骤,更加安全,而且妈妈再也不用担心我们忘记密码. 其实,听着高大上,实现起来特别简单,因为苹果已经帮我们封装好了,我们只需要简单的调用就好了. 1.首先,我们需要导入头文件: #import <LocalAuthentication/LocalAuth

  • IOS 中UIApplication详解及实例

    IOS 中UIApplication详解及实例 以前刚学iPhone开发时,觉得UIApplication这个东西特NB,特神秘,比如它居然能打开一个URL,而且还是用一个很神秘的方法得到实例: [UIApplication sharedApplication] 它对我的神秘感一直保持到今天下午.今天下午负责UI设计的同事在设计,我没有素材,比较清闲,于是发个狠,专门看了一下UIApplication这个类.果然是难者不会,会者不难,看完之后,这个类的神秘感一下子没了.下面让我来揭开它的神秘面纱

  • Android Dialog详解及实例代码

     Android Dialog详解及实例代码 概述: Android开发中最常用的就是Dialog类,除了自定义dialog布局,最多的就是用在弹出对话框.进度条.输入框.单选.复选框. 1.选择对话框: AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle("选择对话框"); dialog.setMessage("请选择确认或取消"); dialog.setCance

  • 微信小程序中实现一对多发消息详解及实例代码

    微信小程序中实现一对多发消息详解及实例代码 微信小程序中各个界面之间的传值和通知比较蛋疼.所以模仿了iOS中的通知中心,在微信小程序中写了一套类似的通知中心. 通知中心可以做到:1对多发消息,传递object.使用十分简洁. 使用时,在需要接收消息的界面注册一个通知名.然后在需要发消息的界面post这个通知名就可以了.可以在多个界面注册同一个通知名.这样就可以1对多发消息. 使用方法: 1:在app.js中引用notification.js var notificationCenter = re

  • MyBatis获取数据库自生成的主键Id详解及实例代码

    MyBatis获取数据库自生成的主键Id详解及实例代码 在使用MySQL数据库时我们一般使用数据库的自增主键自动产生主键.如果在插入主表时,我们需要同时插入从表的数据,这时我们通常需要知道主表插入时自动产生的主键Id值. 下面介绍使用MyBatis进行插入时,如何同时获取数据库自生成的主键: 1.XML配置文件 <insert id="insert" parameterType="Person" useGeneratedKeys="true"

  • MySQL 序列 AUTO_INCREMENT详解及实例代码

    MySQL 序列 AUTO_INCREMENT详解及实例代码 MySQL序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. 本章我们将介绍如何使用MySQL的序列. 使用AUTO_INCREMENT MySQL中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义列. 实例 以下实例中创建了数据表insect, insect中id无需指定值可实现自动增长. mysql>

  • Java 两种延时thread和timer详解及实例代码

    Java 两种延时thread和timer详解及实例代码 在Java中有时候需要使程序暂停一点时间,称为延时.普通延时用Thread.sleep(int)方法,这很简单.它将当前线程挂起指定的毫秒数.如 try { Thread.currentThread().sleep(1000);//毫秒 } catch(Exception e){} 在这里需要解释一下线程沉睡的时间.sleep()方法并不能够让程序"严格"的沉睡指定的时间.例如当使用5000作为sleep()方法的参数时,线 程

随机推荐