你的位置:首页 > 操作系统

[操作系统]IOS中的三种弹窗模式


#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;

    }];

}