文档章节

UIAlertController的使用

_
 ___大黄蜂___
发布于 2016/07/23 23:27
字数 565
阅读 2
收藏 0
点赞 0
评论 0

一、UIAlertController的使用

    从这个类的名字我们就可以看出,对于警示控件,设计的思路不再是View而是Controller。通过present和push进行呼出,而不是以前的show方法。另一个机制改变的地方是,其中按钮的触发方法不再通过代理处理,而是将按钮封装成了类:UIAlertAction。详细方法及使用如下:

UIAlertController * con = [UIAlertController alertControllerWithTitle:@"新的" message:@"看看样子" preferredStyle:UIAlertControllerStyleAlert]; [con addAction:[UIAlertAction actionWithTitle:@"仔细看" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) { //按钮触发的方法 }]]; [self presentViewController:con animated:YES completion:nil]; 上面的代码,会在屏幕上呼出警告框,如下:

初始化方法中的preferref参数是一个枚举,决定是提示框或者抽屉列表:

typedef NS_ENUM(NSInteger, UIAlertControllerStyle) { UIAlertControllerStyleActionSheet = 0,//抽屉 UIAlertControllerStyleAlert//警告框 } 上面的addAction方法添加了一个封装了方法的按钮,UIAlertAction类的构造十分简单,如下:

//初始化方法

  • (instancetype)actionWithTitle:(nullable NSString *)title style:(UIAlertActionStyle)style handler:(void (^ __nullable)(UIAlertAction *action))handler; //获取标题 @property (nullable, nonatomic, readonly) NSString *title; //获取风格 @property (nonatomic, readonly) UIAlertActionStyle style; //设置是否有效 @property (nonatomic, getter=isEnabled) BOOL enabled; AlertAction的风格是如下的枚举:

typedef NS_ENUM(NSInteger, UIAlertActionStyle) { UIAlertActionStyleDefault = 0,//默认的风格 UIAlertActionStyleCancel,//取消按钮的风格 UIAlertActionStyleDestructive//警告的风格 } 二、UIAlertController其他属性和方法

@property (nonatomic, readonly) NSArray<UIAlertAction *> *actions; 获取所有AlertAction

@property (nonatomic, strong, nullable) UIAlertAction *preferredAction NS_AVAILABLE_IOS(9_0); iOS9后新增加的属性,可以使某个按钮更加突出,只能设置已经在actions数组中的AkertAction,会使设置的按钮更加显眼,如下:

  • (void)addTextFieldWithConfigurationHandler:(void (^ __nullable)(UITextField *textField))configurationHandler; 添加一个textField,以前的相关控件,虽然也可以添加textField,但是定制化能力非常差,这个新的方法中有一个configurationHandler代码块,可以将textField的相关设置代码放入这个代码块中,并且这个方法添加的textField个数不再限制于2个: [con addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.placeholder=@"第1个"; }]; [con addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.placeholder=@"第2个"; }]; [con addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.placeholder=@"第3个"; }];

@property (nullable, nonatomic, readonly) NSArray<UITextField *> *textFields; 获取所有textField的数组

@property (nullable, nonatomic, copy) NSString *title; 设置警示控件的标题

@property (nullable, nonatomic, copy) NSString *message; 设置警示控件的信息

@property (nonatomic, readonly) UIAlertControllerStyle preferredStyle; 获取警示控件的风格

© 著作权归作者所有

共有 人打赏支持
_
粉丝 5
博文 25
码字总数 21716
作品 0
东城
IOS基础UI之(五)UIAlertView、UIActionSheet和UIAlertContro

IOS基础UI之(五)UIAlertView、UIActionSheet和UIAlertController详解 标签: iosUIAlertViewUIActionSheetUIAlertController 2015-09-20 11:58 340人阅读 评论(3) 收藏 举报 分类: IOS(UI基......

Bob_Zheng ⋅ 2015/11/26 ⋅ 0

Arrors/AlertKit

#AlertKit Version 0.2.0 1 -> 解决了UIAlertController的布局问题 2 -> 修复了Add TextField时,回调的bug 3 -> 对action的enable仍不支持 Version 0.1.0 1 -> 使用Swift对UIAlertControll......

Arrors ⋅ 2016/03/17 ⋅ 0

[Swift]UIKit学习之警告框:UIAlertController和UIAlertView

Important: UIAlertView is deprecated in iOS 8. (Note that UIAlertViewDelegate is also deprecated.) To create and manage alerts in iOS 8 and later, instead use UIAlertController ......

王永濤 ⋅ 2015/10/21 ⋅ 0

iOS9使用提示框的正确实现方式

在从iOS8到iOS9的升级过程中,弹出提示框的方式有了很大的改变,在Xcode7 ,iOS9.0的SDK中,已经明确提示不再推荐使用UIAlertView,而只能使用UIAlertController,我们通过代码来演示一下。 ...

海二少 ⋅ 2016/03/10 ⋅ 1

如何在没有视图View的情况下使用UIAlertController

一般UiAlertController在初始化完毕后需要一个试图控制器推出,但假如在例如appdelegate这种没有控制器的地方做了一个推送提示框,完全找不到展现的方式,曾经找到一个使用rootViewcontroller的...

JokerV ⋅ 2015/08/14 ⋅ 0

iOS8统一的系统提示控件——UIAlertController

iOS8统一的系统提示控件——UIAlertController 一、引言 相信在iOS开发中,大家对UIAlertView和UIActionSheet一定不陌生,这两个控件在UI设计中发挥了很大的作用。然而如果你用过,你会发现这...

珲少 ⋅ 2015/10/17 ⋅ 2

类似 iOS alertView 弹窗组件--HDAlertView

HDAlertView是一个类似系统alertView弹窗。 系统自带UIAlertView有常见BUG, 比如和系统键盘动画冲突等等, 需要代理操作等诸多不方便使用.使用UIAlertController就不会有UIAlertView等等问题,...

小柒七 ⋅ 2016/09/01 ⋅ 0

UIAlertController的用法

1.我为什么要写这篇博客记录它? 答:因为 UIAlertView和UIActionSheet 被划线了 苹果不推荐我们使用这两个类了,也不再进行维护和更新,为了方便以后使用我来记录一下。如图所示正如苹果所说...

chen_gp_x ⋅ 2017/03/19 ⋅ 0

iOS UIAlertController 弹出问题

xcode 7.1 下弹出 UIalertController , 无法弹出,报 Attempt to present on whose view is not in the window hierarchy! 警告,如果添加 UINavigationController 后,UIalertController 可以弹......

AngeloCui ⋅ 2015/12/19 ⋅ 1

objective-c UIAlertController 提示框应用

注意:reloadData 只有在View 中的数据发生改变的情况下。 UIAlertActionStyleCancel------Cancel意思是取消 UIAlertActionStyleDefault------正常情况下使用 UIAlertController alertContr...

_pioneer_ ⋅ 2016/01/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ学习以及与Spring的集成(三)

本文介绍RabbitMQ与Spring的简单集成以及消息的发送和接收。 在RabbitMQ的Spring配置文件中,首先需要增加命名空间。 xmlns:rabbit="http://www.springframework.org/schema/rabbit" 其次是模...

onedotdot ⋅ 17分钟前 ⋅ 0

JAVA实现仿微信红包分配规则

最近过年发红包拜年成为一种新的潮流,作为程序猿对算法的好奇远远要大于对红包的好奇,这里介绍一种自己想到的一种随机红包分配策略,还请大家多多指教。 算法介绍 一、红包金额限制 对于微...

楠木楠 ⋅ 29分钟前 ⋅ 0

Python 数电表格格式化 xlutils xlwt xlrd的使用

需要安装 xlutils xlwt xlrd 格式化前 格式化后 代码 先copy读取的表格,然后按照一定的规则修改,将昵称中的学号提取出来替换昵称即可 from xlrd import open_workbookfrom xlutils.copy ...

阿豪boy ⋅ 58分钟前 ⋅ 0

面试题:使用rand5()生成rand7()

前言 读研究生这3 年,思维与本科相比变化挺大的,这几年除了看论文、设计方案,更重要的是学会注重先思考、再实现,感觉更加成熟吧,不再像个小P孩,人年轻时总会心高气傲。有1 道面试题:给...

初雪之音 ⋅ 58分钟前 ⋅ 0

Docker Toolbox Looks like something went wrong

Docker Toolbox 重新安装后提示错误:Looks like something went wrong in step ´Checking if machine default exists´ 控制面板-->程序与应用-->启用或关闭windows功能:找到Hyper-V,如果处......

随你疯 ⋅ 今天 ⋅ 0

Guacamole 远程桌面

本文将Apache的guacamole服务的部署和应用,http://guacamole.apache.org/doc/gug/ 该链接下有全部相关知识的英文文档,如果水平ok,可以去这里仔细查看。 一、简介 Apache Guacamole 是无客...

千里明月 ⋅ 今天 ⋅ 0

nagios 安装

Nagios简介:监控网络并排除网络故障的工具:nagios,Ntop,OpenVAS,OCS,OSSIM等开源监控工具。 可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和h...

寰宇01 ⋅ 今天 ⋅ 0

AngularDart注意事项

默认情况下创建Dart项目应出现以下列表: 有时会因为不知明的原因导致列表项缺失: 此时可以通过以下步骤解决: 1.创建项目涉及到的包:stagehand 2.执行pub global activate stagehand或pub...

scooplol ⋅ 今天 ⋅ 0

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 今天 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部