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

Posted brave-sailor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法相关的知识,希望对你有一定的参考价值。

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

具体代码如下:

ViewController.h中的代码如下:

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


ViewController.m中的详细代码:

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

以上是关于UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发之UIAlertView与UIAlertController的详尽用法说明

提示窗UIAlertView与UIAlertController的用法(持续更新中)

Alertview Void Alert3 clickedButtonAtIndex 未被调用

UIAlertView笔记

UIAlertView,UIActionSheet和iOS8推出UIAlertControl的基本使用

何时使用 UIAlertView 与 UIActionSheet