首先,视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件。
如果使用多个AlertView的话,可以使用tag值来判断。
具体代码如下:
ViewController.h中的代码如下:
- #import
-
- @interface
ViewController : UIViewController -
- @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 didDismissWithButtonInde x:(NSInteger)buttonIndex - {
-
NSLog(@"didDismissWithButtonInde x"); - }
-
- //ALertView即将消失时的事件
- -(void)alertView:(UIAlertView
*)alertView willDismissWithButtonInd ex:(NSInteger)buttonIndex - {
-
NSLog(@"willDismissWithButtonInd ex"); - }
-
- //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; - }