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