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

时间:2023-11-14 19:34:26

原文网址:http://blog.****.net/enuola/article/details/7900346

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