UIALertView的基本用法與UIAlertViewDelegate對對話方塊的事件處理方法
阿新 • • 發佈:2019-02-20
首先,檢視控制器必須得實現協議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; }