1. 程式人生 > >UIALertView的基本用法與UIAlertViewDelegate對對話方塊的事件處理方法

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;
}