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

时间:2021-07-10 01:07:55

首先,视图控制器必须得实现协议UIAlertViewDelegate中的方法,并指定delegate为self,才能使弹出的Alert窗口响应点击事件。

具体代码如下:

ViewController.h中的代码如下:

  1. #import <UIKit/UIKit.h>
  2. @interface ViewController : UIViewController<UIAlertViewDelegate>
  3. @end

ViewController.m中的详细代码:

  1. - (void)viewDidLoad
  2. {
  3. [super viewDidLoad];
  4. // Do any additional setup after loading the view from its nib
  5. //初始化AlertView
  6. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"AlertViewTest"
  7. message:@"message"
  8. delegate:self
  9. cancelButtonTitle:@"Cancel"
  10. otherButtonTitles:@"OtherBtn",nil];
  11. //设置标题与信息,通常在使用frame初始化AlertView时使用
  12. alert.title = @"AlertViewTitle";
  13. alert.message = @"AlertViewMessage";
  14. //这个属性继承自UIView,当一个视图中有多个AlertView时,可以用这个属性来区分
  15. alert.tag = 0;
  16. //只读属性,看AlertView是否可见
  17. NSLog(@"%d",alert.visible);
  18. //通过给定标题添加按钮
  19. [alert addButtonWithTitle:@"addButton"];
  20. //按钮总数
  21. NSLog(@"number Of Buttons :%d",alert.numberOfButtons);
  22. //获取指定索引的按钮标题
  23. NSLog(@"buttonTitleAtIndex1:%@",[alert buttonTitleAtIndex:1]);
  24. NSLog(@"buttonTitleAtIndex2:%@",[alert buttonTitleAtIndex:2]);
  25. //获取取消按钮的索引
  26. NSLog(@"cancelButtonIndex:%d",alert.cancelButtonIndex);
  27. //获取第一个其他按钮的索引
  28. NSLog(@"firstOtherButtonIndex:%d",alert.firstOtherButtonIndex);
  29. //显示AlertView
  30. [alert show];
  31. [alert release];
  32. }
  33. #pragma marks -- UIAlertViewDelegate --
  34. //根据被点击按钮的索引处理点击事件
  35. -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
  36. {
  37. NSLog(@"clickButtonAtIndex:%d",buttonIndex);
  38. }
  39. //AlertView已经消失时执行的事件
  40. -(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
  41. {
  42. NSLog(@"didDismissWithButtonIndex");
  43. }
  44. //ALertView即将消失时的事件
  45. -(void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex
  46. {
  47. NSLog(@"willDismissWithButtonIndex");
  48. }
  49. //AlertView的取消按钮的事件
  50. -(void)alertViewCancel:(UIAlertView *)alertView
  51. {
  52. NSLog(@"alertViewCancel");
  53. }
  54. //AlertView已经显示时的事件
  55. -(void)didPresentAlertView:(UIAlertView *)alertView
  56. {
  57. NSLog(@"didPresentAlertView");
  58. }
  59. //AlertView即将显示时
  60. -(void)willPresentAlertView:(UIAlertView *)alertView
  61. {
  62. NSLog(@"willPresentAlertView");
  63. }
  64. - (void)viewDidUnload
  65. {
  66. [super viewDidUnload];
  67. // Release any retained subviews of the main view.
  68. // e.g. self.myOutlet = nil;
  69. }