iOS中的AlterViewController的一些总结

一、 IOS8之后,苹果使用UIAlertController 取代UIActionSheet(操作表 提供一系列按钮,底部弹出) UIAlertView(警告 中间弹出). 关于这两个怎么使用,大家可以自行百度,在一些旧项目中会有用到。我这里介绍UIAlertController 基于ios新手,没有接触过之前两种的情况下…
二. UIAlterController创建以及显示,
实际上,苹果之前只是将两个类归为一个处理了,然后根据不同的preferredStyle来判断创建的具体是什么提示框,下面就是两个style,/*
typedef NS_ENUM(NSInteger, UIAlertControllerStyle) {
UIAlertControllerStyleActionSheet = 0, //actionSheet(操作表 提供一系列按钮) 底部弹出
UIAlertControllerStyleAlert //alert 警告 中间弹出
} NS_ENUM_AVAILABLE_IOS(8_0);
*/
三:然后就是 UIAlertController创建和显示
UIAlertController *alert = [UIAlertController alertControllerWithTitle:DMSG0048 message:nil preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction cancel = [UIAlertAction actionWithTitle:@”取消” style:UIAlertActionStyleCancel handler:^(UIAlertAction action) {
}];
UIAlertAction * login = [UIAlertAction actionWithTitle:@”去注册” style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[alert addAction:cancel];
[alert addAction:login];
if (IS_IOS9) {
alert.preferredAction = alert.actions[alert.actions.count-1];
}
显示,然后就是模态视图的显示
[self presentViewController:alert animated:YES completion:nil];
注意事项:1.UIAlterAction也就是弹出来的框上面的那些,确定,取消之类的按钮,但是注意,取消按钮最多只能有一个,按钮但三种状态有:
/*
typedef NS_ENUM(NSInteger, UIAlertActionStyle) {
UIAlertActionStyleDefault = 0, //默认
UIAlertActionStyleCancel, //取消
UIAlertActionStyleDestructive //破坏的 比较严重的 会红色提示
} NS_ENUM_AVAILABLE_IOS(8_0);
*/
创建按钮并且显示
UIAlertController *alertC = [UIAlertController alertControllerWithTitle:@”样式一” message:@”学习UIAlertControllerStyleActionSheet” preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction action6 = [UIAlertAction actionWithTitle:@”取消2” style:UIAlertActionStyleCancel handler:^(UIAlertAction _Nonnull action) {
NSLog(@”点击了取消”);
}];
UIAlertAction action2 = [UIAlertAction actionWithTitle:@”UIAlertActionStyleDefault1” style:UIAlertActionStyleDefault handler:^(UIAlertAction _Nonnull action) {
NSLog(@”点击了默认1”);
}];

UIAlertAction *action9 = [UIAlertAction actionWithTitle:@"UIAlertActionStyleDefault5" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
    NSLog(@"点击了默认2");
}];
UIAlertAction *action3 = [UIAlertAction actionWithTitle:@"UIAlertActionStyleDestructive1" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
    NSLog(@"点击了确认1");
}];
UIAlertAction *action5 = [UIAlertAction actionWithTitle:@"UIAlertActionStyleDestructive2" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
    NSLog(@"点击了确认2");
}];
[alertC addAction:action2];
[alertC addAction:action3];
[alertC addAction:action5];
[alertC addAction:action6];
[alertC addAction:action9];

,这两种显示效果如下哦,
一种是a.UIAlertControllerStyleActionSheet是一种从下面弹出的样式,

另一种,是UIAlertControllerStyleAlert ,这是一种从中间弹出来的样式的提示框
3. preferredAction 优先选择按钮IOS9新出

@property (nonatomic, strong, nullable) UIAlertAction *preferredAction NS_AVAILABLE_IOS(9_0); 这个属性是ios9之后才有的。不能用在之前的项目中.. 为这个属性赋值之后,那个按钮的文字会有加粗的效果。但是实际试了下发现只有UIAlertControllerStyleAlert模式的才有效果 UIAlertControllerStyleActionSheet默认应该是选中了取消 

注意:对preferredAction的赋值,必须在[alertC addAction:action2];之后执行,也就是说只能用alertC.actions数组里面的值赋值 否则会报错“The -preferredAction of an alert controller must be contained in the -actions array or be nil.’

4,同时增加了textFiled的输入框,注意的是只能是UIAlertControllerStyleAlert可以添加。可以添加,’Text fields can only be added to an alert controller of style UIAlertControllerStyleAlert’
[alertC addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @”textField1”;
}];
[alertC addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @”textField2”;
}];
[alertC addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
textField.placeholder = @”textField3”;
}];
获取textField. UIAlertController中有一个数组textFields存储了创建的textField.

UIAlertAction action5 = [UIAlertAction actionWithTitle:@”UIAlertActionStyleDestructive2” style:UIAlertActionStyleDestructive handler:^(UIAlertAction _Nonnull action) {
NSLog(@”点击了确认2”);
for (UITextField *field in alertC.textFields) {
NSLog(@”field = %@”,field.text);
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值