UIAlertController的使用

一、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; 获取警示控件的风格

转载于:https://my.oschina.net/huanglaifengLove/blog/716800

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值