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;

    }];

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM