UIAlertController(iOS8)是 UIAlertView和UIActionSheet 替代和升级版。
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
网友评论