iOS开发:UIAlertController

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)