IOS UIAlertView 提示视图

一 UIAlertView 简介    

如果需要弹出讯息让用户确认,或者要求用户输入帐户密码,其他本文,则可用用UIAlertView。


二 UIAlertView 创建

    /**
     1.创建 UIAlertView
     
     title                  提示视图标题,比如 告警、提示、异常
     message                用户看的实际讯息
     delegate               可选参数,传递委托对象给提示视图,当视图状态变更时,委托对象会被通知。传递的参数对象必须实现 UIAlertViewDelegate 协定
     cancelButtonTitle      可选参数,这个字符串符会显示在提示示视图的取消按钮上。     
     otherButtonTitles      可选参数,若你希望提示示视图出现其他按钮,只要传递标题参数,此参数需用逗号分隔,用 nil 做结尾。
     
     */
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title"
                                                        message:@"Message"
                                                       delegate:nil
                                               cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];

  

    

三 设置样式

  /**
     2. 设置样式
     UIAlertViewStyleDefault = 0,            默认,没有输入框
     UIAlertViewStyleSecureTextInput,        提示视图中添加密码框
     UIAlertViewStylePlainTextInput,         提示视图中添加输入框
     UIAlertViewStyleLoginAndPasswordInput   登录和密码框
     
     */
    [alertView setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];

    

    

四 展示 

    [alertView show];

    



五 监听点击,并获取用户的输入

如果要监听用户的点击和获取用户输入,需要实现UIAlertViewDelegate 协议,协议中的alertView:clickedButtonAtIndex 方法可以得到用户在提示视图上所按的按钮,按钮的索引值会被储存在变量 clickedAtIndex 中

/**
 *  监听点击
 *
 *  @param alertView   <#alertView description#>
 *  @param buttonIndex <#buttonIndex description#>
 */
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex];
    
    // 判断点击
    if ([buttonTitle isEqualToString:@"Cancel"]){
        NSLog(@"User pressed the Cancel button.");
    }
    else if ([buttonTitle isEqualToString:@"Ok"]){
        NSLog(@"User pressed the Ok button.");
    }
    
    
    //接受输入类容
    //textFieldAtIndex 获取对应位置的UITextField
    UITextField *textField = [alertView textFieldAtIndex:0];
    NSLog(@"%@",textField.text);
    
    UITextField *textField2 = [alertView textFieldAtIndex:1];
    NSLog(@"%@",textField2.text);
}




六 完整代码

#import "ViewController.h"

@interface ViewController ()<UIAlertViewDelegate>

@end

@implementation ViewController


- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    //UIAlertView 作用
    //如果需要弹出讯息让用户确认,或者要求用户输入帐户密码,其他本文,则可用用UIAlertView
    
    /**
     1.创建 UIAlertView
     
     title                  提示视图标题,比如 告警、提示、异常
     message                用户看的实际讯息
     delegate               可选参数,传递委托对象给提示视图,当视图状态变更时,委托对象会被通知。传递的参数对象必须实现 UIAlertViewDelegate 协定
     cancelButtonTitle      可选参数,这个字符串符会显示在提示示视图的取消按钮上。     
     otherButtonTitles      可选参数,若你希望提示示视图出现其他按钮,只要传递标题参数,此参数需用逗号分隔,用 nil 做结尾。
     
     */
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title"
                                                        message:@"Message"
                                                       delegate:nil
                                               cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];
    
    
    
    /**
     2. 设置样式
     UIAlertViewStyleDefault = 0,            默认,没有输入框
     UIAlertViewStyleSecureTextInput,        提示视图中添加密码框
     UIAlertViewStylePlainTextInput,         提示视图中添加输入框
     UIAlertViewStyleLoginAndPasswordInput   登录和密码框
     
     */
    [alertView setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];
    
    
    
    
    
    /**
     3. 监听点击
     
     如果要监听用户的点击需要实现UIAlertViewDelegate 协议,协议中的alertView:clickedButtonAtIndex 方法可以得到用户在提示视图上所按的按钮,按钮的索引值会被储存在变量 clickedAtIndex 中
     */
    [alertView setDelegate:self];
//    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title"
//                                                        message:@"Message"
//                                                       delegate:self
//                                              cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil];

    
    /**
     4. 接受AlertView 输入类容
     */
    
    
    
    //展示
    [alertView show];
    

}



/**
 *  监听点击
 *
 *  @param alertView   <#alertView description#>
 *  @param buttonIndex <#buttonIndex description#>
 */
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
    NSString *buttonTitle = [alertView buttonTitleAtIndex:buttonIndex];
    
    // 判断点击
    if ([buttonTitle isEqualToString:@"Cancel"]){
        NSLog(@"User pressed the Cancel button.");
    }
    else if ([buttonTitle isEqualToString:@"Ok"]){
        NSLog(@"User pressed the Ok button.");
    }
    
    
    //接受输入类容
    UITextField *textField = [alertView textFieldAtIndex:0];
    NSLog(@"%@",textField.text);
    
    UITextField *textField2 = [alertView textFieldAtIndex:1];
    NSLog(@"%@",textField2.text);
}


@end


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。