您的位置:首页 > 移动开发 > IOS开发

IOS 中的三种弹框模式

2015-06-01 10:20 671 查看
#pragma mark 方法1
/**
 *  一般用在IOS8以前,用到了代理
 */
- (void)use1
{
    // 1.创建一个中间弹框,有“取消”和“确定按钮”,设置代理为当前控制器
    UIAlertView *alert = [[UIAlertView
alloc] initWithTitle:@"提示"
message:@"点击了图片按钮"
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"确定",
nil];
    
    // 2.显示在屏幕上
    [alert show];
}

#pragma mark 方法2
/**
 *  用在IOS8,没有用到代理
 */
- (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;
    }];
}

#pragma mark 监听方式1中出现的弹框中的按钮点击,控制器来监听点击了取消还是确定按钮
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
    // 默认取消按钮索引为0
    if (buttonIndex ==
0) NSLog(@"点击了取消按钮");
    else
NSLog(@"点击了确定按钮");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios