天天看点

UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法

首先,视图控制器必须得实现协议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;  

}