今天在偶尔使用UIAlertView的时候,发现这个组件已经不被推荐使用了,虽然还是可以用的,但是在iOS9出了的情况下,使用前景不容乐观,所以今天就抽时间研究了下,苹果推荐的组件 UIAlertController (弹出视图控制器)。
优先说明一下IOS_8_0之前的两个组件 UIAlertView 和 UIActionSheet ,在IOS_8_0之后,苹果统一用UIAlertController来替代
为了方便验证,用storyboard在主视图控制器中拖入一个button,只为测试,在点击按钮的时候弹出警告视图。
将button拖入viewController.m,并注册一个点击方法,为了好掩饰,一切代码写在button点击事件中
UIAlertView(IOS_8_0之前)
什么叫做UIAlertView,翻译过来就是警告视图,样子如图
当点击按钮的时候,需要弹出这个AlertView,按钮的点击事件如下
/**
* button的点击回调方法
*/
- (IBAction)buttonPressed:(id)sender
{
NSLog(@"按钮被点击!");
/**
* 创建一个UIAlertView 对象
* 设置title(表头)为@“我是AlertView(IOS8_0之前)”
* 设置message(携带信息) 为@“已经点击按钮”
* 设置代理为 自身 self
* 加重字体的button的按钮(默认是第一个的按钮)的文字是 @“确定”
* 其他的按钮以此是@"取消"
*/
UIAlertView * alertView = [[UIAlertView alloc]initWithTitle:@"我是AlertView(IOS8_0之前)" message:@"已经点击按钮" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消",nil];//IOS8_0 之前
//显示 alertView
[alertView show];
}
这是当点击按钮的时候,需要回调方法,在初始化的时候已经设置了delegate,所以在延展或头文件中实现?<UIAlertViewDelegate>协议即可,
协议的方法如下,是@option的
#pragma mark -UIAlertViewDelegate 方法
/**
* 根据button的下标数字 确认是哪一个按钮被点击
*
* @param alertView 调用方法的alertView
* @param buttonIndex button的下标数字
*/
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
//下标的数字式按照alertView自左往右的顺序
switch (buttonIndex) {
case 0:
NSLog(@"点击了确定按钮!");
break;
case 1:
NSLog(@"点击了取消按钮!");
break;
default:
break;
}
}
/**
* 将要出现