#pragma mark 方法1
/**
* 用在IOS7,用到了代理
*/
- (void)use1
{
// 1.创建一个中间弹框,有“取消”和“确定按钮”,设置代理为当前控制器,由控制器监听点击了“取消”还是“确定”按钮
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"点击了图片按钮" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil];
// 2.显示在屏幕上
[alert show];
}
#pragma mark 监听方式1中出现的弹框中的按钮点击,控制器来监听点击了取消还是确定按钮
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// 默认取消按钮索引为0
if (buttonIndex == 0) NSLog(@"点击了取消按钮");
else NSLog(@"点击了确定按钮");
}
#pragma mark 方法2
/**
* 用在IOS8,没有代理。点击按钮时要执行的操作放在了block中,因此不需要设置代理
*/
- (void)use2
{
// 1.创建弹框控制器, UIAlertControllerStyleAlert这个样式代表弹框显示在屏幕中央
UIAlertController *alertVc = [UIAlertController alertControllerWithTitle:@"提示" message:@"点击了头像" preferredStyle:UIAlertControllerStyleAlert];
// 2.添加取消按钮,block中存放点击了“取消”按钮要执行的操作
UIAlertAction *cancle = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
NSLog(@"点击了取消按钮");
}];
UIAlertAction *confirm = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
NSLog(@"点击了确定按钮");
}];
// 3.将“取消”和“确定”按钮加入到弹框控制器中
[alertVc addAction:cancle];
[alertVc addAction:confirm];
// 4.控制器 展示弹框控件,完成时不做操作
[self presentViewController:alertVc animated:YES completion:^{
nil;
}];
}
#pragma mark 方法3
/**
* 用在IOS8,没有用到代理。跟方式2唯一不同的是:弹框的样式变为“UIAlertControllerStyleActionSheet”, 弹框出现在屏幕底部
*/
- (void)use3
{
UIAlertController *alertVc = [UIAlertController alertControllerWithTitle:@"提示" message:@"点击了头像" preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *cancle = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
NSLog(@"点击了取消");
}];
UIAlertAction *confirm = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
NSLog(@"点击了确定按钮");
}];
[alertVc addAction:cancle];
[alertVc addAction:confirm];
[self presentViewController:alertVc animated:YES completion:^{
nil;
}];
}