美文网首页
iOS开发:UIAlertController

iOS开发:UIAlertController

作者: iOS_SXH | 来源:发表于2017-02-05 10:23 被阅读0次

    UIAlertController(iOS8)是 UIAlertViewUIActionSheet 替代和升级版。

    UIAlertController 继承 UIViewController ,所以弹出方式可以用 模态弹出


    1:初始化

    初始化代码:

    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"我是提示的内容" preferredStyle:UIAlertControllerStyleAlert ];

    初始化选择 UIAlertController风格:

    style:UIAlertControllerStyleAlert  (Alert)

    style:UIAlertControllerStyleActionSheet(ActionSheet)

    2:添加按钮

    取消按钮(靠左):

    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil];

    [alertController addAction:cancelAction];

    确定按钮(靠右):

    UIAlertAction *OKAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil];

    [alertController addAction:OKAction];

    按钮风格:

    style:UIAlertActionStyleDefault-->标准样式

    style:UIAlertActionStyleCancel-->取消样式,即取消操作

    style:UIAlertActionStyleDestructive-->警示性样式(字体红色)

    3:显示

    [self presentViewController:alertController animated:YES completion:nil];


    旧方法:(UIAlertView)

    1:初始化

    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"温馨提 message:@"我是提示信息" delegate:self  cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];

    2:显示alertView

    [alertView show];

    3:代理方法:(UIAlertViewDelegate)

    1.当点击UIAlertView上的按钮时,就会调用,并且当方法调完后,UIAlertView会自动消失。

    - (void)alertView:(UIAlertView*)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;

    2.当UIAlertView即将出现的时候调用

    - (void)willPresentAlertView:(UIAlertView*)alertView;

    3.当UIAlertView完全出现的时候调用

    - (void)didPresentAlertView:(UIAlertView*)alertView;

    4.当UIAlertView即将消失的时候调用

    - (void)alertView:(UIAlertView*)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex;

    5.当UIAlertView完全消失的时候调用

    - (void)alertView:(UIAlertView*)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;

    4:补充

         如果要修改alertView控件的frame,比如text位置是居中的,如果要让其向左偏移,在代理方法2中遍历alertView.subviews,判断控件所属的class,修改即可。

    更多方法:重温UIAlertView


    旧方法:(UIActionSheet)

    1:初始化:

    UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@" 我是Action Shee样式" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"我是红色" otherButtonTitles:@"原来如此", nil];

    2:显示actionSheet

    [actionSheet showInView:self.view];

    3:代理方法(UIActionSheetDelegate)

    1.点击按钮时调用

    - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;

    2.视图将要弹出时调用

    - (void)willPresentActionSheet:(UIActionSheet *)actionSheet;

    3.视图已经弹出时调用

    - (void)didPresentActionSheet:(UIActionSheet *)actionSheet;

    4.点击按钮后,视图将要消失时调用

    - (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex;

    5.点击按钮后,视图已经消失时调用

    - (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex;

    补充:

    关于UIActionSheet中如果按钮点击事件是跳转到其他控制器的时候,最好在代理5中执行。

    更多方法:UIActionSheet


    学无止境,做个记录

    2017-02-05-SXH

    相关文章

      网友评论

          本文标题:iOS开发:UIAlertController

          本文链接:https://www.haomeiwen.com/subject/funsittx.html