首先,视图控制器必须得实现协议uialertviewdelegate中的方法,并指定delegate为self,才能使弹出的alert窗口响应点击事件。
具体代码如下:
viewcontroller.h中的代码如下:
#import <uikit/uikit.h>
@interface viewcontroller : uiviewcontroller<uialertviewdelegate>
@end
viewcontroller.m中的详细代码:
- (void)viewdidload
{
[super viewdidload];
// do any additional setup after loading the view from its nib
//初始化alertview
uialertview *alert = [[uialertview alloc] initwithtitle:@"alertviewtest"
message:@"message"
delegate:self
cancelbuttontitle:@"cancel"
otherbuttontitles:@"otherbtn",nil];
//设置标题与信息,通常在使用frame初始化alertview时使用
alert.title = @"alertviewtitle";
alert.message = @"alertviewmessage";
//这个属性继承自uiview,当一个视图中有多个alertview时,可以用这个属性来区分
alert.tag = 0;
//只读属性,看alertview是否可见
nslog(@"%d",alert.visible);
//通过给定标题添加按钮
[alert addbuttonwithtitle:@"addbutton"];
//按钮总数
nslog(@"number of buttons :%d",alert.numberofbuttons);
//获取指定索引的按钮标题
nslog(@"buttontitleatindex1:%@",[alert buttontitleatindex:1]);
nslog(@"buttontitleatindex2:%@",[alert buttontitleatindex:2]);
//获取取消按钮的索引
nslog(@"cancelbuttonindex:%d",alert.cancelbuttonindex);
//获取第一个其他按钮的索引
nslog(@"firstotherbuttonindex:%d",alert.firstotherbuttonindex);
//显示alertview
[alert show];
[alert release];
}
#pragma marks -- uialertviewdelegate --
//根据被点击按钮的索引处理点击事件
-(void)alertview:(uialertview *)alertview clickedbuttonatindex:(nsinteger)buttonindex
nslog(@"clickbuttonatindex:%d",buttonindex);
//alertview已经消失时执行的事件
-(void)alertview:(uialertview *)alertview diddismisswithbuttonindex:(nsinteger)buttonindex
nslog(@"diddismisswithbuttonindex");
//alertview即将消失时的事件
-(void)alertview:(uialertview *)alertview willdismisswithbuttonindex:(nsinteger)buttonindex
nslog(@"willdismisswithbuttonindex");
//alertview的取消按钮的事件
-(void)alertviewcancel:(uialertview *)alertview
nslog(@"alertviewcancel");
//alertview已经显示时的事件
-(void)didpresentalertview:(uialertview *)alertview
nslog(@"didpresentalertview");
//alertview即将显示时
-(void)willpresentalertview:(uialertview *)alertview
nslog(@"willpresentalertview");
- (void)viewdidunload
[super viewdidunload];
// release any retained subviews of the main view.
// e.g. self.myoutlet = nil;
}