视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件。
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UIAlertViewDelegate>
- (IBAction)onDialog:(id)sender;
@end
ViewController.m:
- (IBAction)onDialog:(id)sender {
// UIAlertView * alertView=[[UIAlertView alloc] initWithTitle:@"Hello" message:@"你好呀" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"取消", nil];
// [alertView show];
//初始化AlertView
UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:@"确定"
message:@"呵呵"
delegate:self
cancelButtonTitle:@"取消"
otherButtonTitles:@"ONE",nil];
//设置标题与信息,通常在使用frame初始化AlertView时使用
alert.title =@"确定";
alert.message =@"呵呵";
//这个属性继承自UIView,当一个视图中有多个AlertView时,可以用这个属性来区分
alert.tag =0;
//只读属性,看AlertView是否可见
NSLog(@"%d",alert.visible);
//通过给定标题添加按钮
[alert addButtonWithTitle:@"TWO"];
//按钮总数
NSLog(@"number Of Buttons :%d",alert.numberOfButtons);
//获取指定索引的按钮标题
NSLog(@"buttonTitleAtIndex1:%@",[alertbuttonTitleAtIndex:1]);
NSLog(@"buttonTitleAtIndex2:%@",[alertbuttonTitleAtIndex:2]);
//获取取消按钮的索引
NSLog(@"cancelButtonIndex:%d",alert.cancelButtonIndex);
//获取第一个其他按钮的索引
NSLog(@"firstOtherButtonIndex:%d",alert.firstOtherButtonIndex);
//显示AlertView
[alertshow];
}
//根据被点击按钮的索引处理点击事件
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"clickButtonAtIndex:%d",buttonIndex);
NSLog(@"根据被点击按钮的索引处理点击事件");
}
//AlertView已经消失时执行的事件
-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
NSLog(@"didDismissWithButtonIndex");
NSLog(@"AlertView已经消失时执行的事件");
}
//ALertView即将消失时的事件
-(void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
{
NSLog(@"willDismissWithButtonIndex");
NSLog(@"ALertView即将消失时的事件");
}
//AlertView的取消按钮的事件
-(void)alertViewCancel:(UIAlertView *)alertView
{
NSLog(@"alertViewCancel");
NSLog(@"//AlertView的取消按钮的事件");
}
//AlertView已经显示时的事件
-(void)didPresentAlertView:(UIAlertView *)alertView
{
NSLog(@"didPresentAlertView");
NSLog(@"AlertView已经显示时的事件");
}
//AlertView即将显示时
-(void)willPresentAlertView:(UIAlertView *)alertView
{
NSLog(@"willPresentAlertView");
NSLog(@"AlertView即将显示时");
}