一 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
时间: 2024-10-05 05:32:17