#PRagma mark 方法1
/**
* 用在IOS7,用到了代理
*/
- (void)use1
{
// 1.創(chuàng)建一個中間彈框,有“取消”和“確定按鈕”,設置代理為當前控制器,由控制器監(jiān)聽點擊了“取消”還是“確定”按鈕
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"點擊了圖片按鈕" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil];
// 2.顯示在屏幕上
[alert show];
}
#pragma mark 監(jiān)聽方式1中出現(xiàn)的彈框中的按鈕點擊,控制器來監(jiān)聽點擊了取消還是確定按鈕
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// 默認取消按鈕索引為0
if (buttonIndex == 0) NSLog(@"點擊了取消按鈕");
else NSLog(@"點擊了確定按鈕");
}
#pragma mark 方法2
/**
* 用在IOS8,沒有代理。點擊按鈕時要執(zhí)行的操作放在了block中,因此不需要設置代理
*/
- (void)use2
{
// 1.創(chuàng)建彈框控制器, UIAlertControllerStyleAlert這個樣式代表彈框顯示在屏幕中央
UIAlertController *alertVc = [UIAlertController alertControllerWithTitle:@"提示" message:@"點擊了頭像" preferredStyle:UIAlertControllerStyleAlert];
// 2.添加取消按鈕,block中存放點擊了“取消”按鈕要執(zhí)行的操作
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唯一不同的是:彈框的樣式變?yōu)?span id="70qarhlowxag" class="s1">“UIAlertControllerStyleActionSheet”, 彈框出現(xiàn)在屏幕底部
*/
- (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;
}];
}
新聞熱點
疑難解答