UIAlertView使用全解

举例:

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Default Alert View"message:@"Defalut" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];


标准的双按钮,cancel那个buttonIndex 为0, ok button 的buttonIndex为1

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Default Alert View"message:@"Defalut" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK",@“ThirdButton”, nil];

和程序里的顺序一样,cancel   ok   thirdButton 的buttonIndex 分别为0 1 2

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Default Alert View"message:@"Defalut" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK",@“ThirdButton”, nil];

同理,cancel   ok   thirdButton FourthButton的buttonIndex 分别为0 1 2 3

[alertView show];

UIAlertView Delegate

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

alertView--->这个不用多说了吧

buttonIndex---->从0开始

可以通过if (buttonIndex == 1) { } 这样的来控制点击了某个按钮需要做什么操作

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex

这个方法在动画结束和视图隐藏之后调用

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex

这个方法在动画开始和视图隐藏之前调用

- (void)alertViewCancel:(UIAlertView *)alertView

在视图将要被取消之前

例如,用户点击了home键

三个函数的调用顺序依次是:

alertViewCancel----》willDismissWithButtonIndex---》didDismissWithButtonIndex

- (BOOL)alertViewShouldEnableFirstOtherButton(UIAlertView *)alertView

ios 5+

设置yes / no  将会设置alertView 的第一个otherButton的enable属性

- (void)didPresentAlertView:(UIAlertView *)alertView

在视图提交给用户以后调用

-  (void)willPresentAlertView:(UIAlertView *)alertView

在视图提交给用户以前调用

这六个delegate 方法调用的顺序依次是

alertViewShouldEnableFirstOtherButton---->willPresentAlertView--->didPresentAlertView

---->clickedButtonAtIndex---->(如果会触发视图取消,则会调用alertViewCancel)willDismissWithButtonIndex---->didDismissWithButtonIndex

ios4.0以后 alertView不会自动随着程序转向后台而移除

alertView属性

1.alertViewStyle:

UIAlertViewStyleDefault 只弹信息和按钮

UIAlertViewStyleSecureTextInput 有一个textfield加密框

UIAlertViewStylePlainTextInput 有一个不加密的textfield

UIAlertViewStyleLoginAndPasswordInput 有两个textfield,Login和password

只要有textfield就可以用textfieldAtIndex来捕获并进行相应的操作例如换键盘类型

2.cancelButtonIndex

开始是0,如果没有设置cancel button 则是-1

3.delegate

如果没有设置则是nil

4.firstOtherButtonIndex

从0开始,如果没设置则是-1,而且没被设置则会被忽略

5.message

消息

6.numberOfButtons

只读  alertView中的按钮数量

7.title

标题

8.visible

只读  如果是yes 表示被显示

实例方法

- (NSInteger)addButtonWithTitle:(NSString *)title

返回值是增加的Button的index

- (NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex

输入buttonIndex 返回button的标题

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated

程序自动完成点击buttonIndex的button 并dismiss 整个alertView的操作

- (id)initWithTitle:(NSString *)title message:(NSString)message delegate:(id)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitle:(NSString *)otherButtonTitles, ...

这个就不用多说了

- (void)show

要显示必须要调用这个alertview才会显示

-  (UITextField *)textfieldAtIndex:(NSInteger)textfieldIndex

返回值是textfield

UIAlertViewStyleDefault 没有

UIAlertViewStyleSecureInput textfieldIndex 只有一个为0

UIAlertViewStylePlainInput textfieldIndex 只有一个为0

UIAlertViewStyleLoginAndPasswordInput textfieldIndex有两个 0 1

时间: 2024-08-18 05:22:07

UIAlertView使用全解的相关文章

UITextField 全解

IOS-UITextField-全解 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, 30)]; //设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect; typedef enum { UITextBorderStyleNone, UITextBorderSt

phpEXCEL操作全解

phpExcel中文帮助手册,列举了各种属性,以及常用的操作方法,难得是每一个都用实例加以说明,希望对大家有所帮助. phpExcel中文帮助手册,不可多得的好文章,供大家学习参考. 1.设置excel的属性: 创建人 $objPHPExcel->getProperties()->setCreator("Maarten Balliauw"); 最后修改人 $objPHPExcel->getProperties()->setLastModifiedBy("

RAM和yum功能全解

一RPM程序包管理器功能全解 1.RPM简介 RPM全称为"RedHat Package Manager",是有RedHat公司开发的程序包管理器.RPM 是以一种数据库记录的方式将所需要的套件安装到Linux主机的一套程序包管理器. RPM的命名格式: Name-version-release.arch.rpm 套件名称  套件的版本 发行号 适合的硬件平台 扩展名 RPM的组成清单: 1文件清单 2安装或卸载时运行的脚本 3数据库(公共) 4程序包的名称和版本 5依赖关系 6功能说

PHP漏洞全解(三)-客户端脚本植入

本文主要介绍针对PHP网站的客户端脚本植入攻击方式.所谓客户端脚本植入攻击,是指将可以执行的脚本插入到表单.图片.动画或超链接文字等对象内.当用户打开这些对象后,黑客所植入的脚本就会被执行,进而开始攻击. 客户端脚本植入(Script Insertion),是指将可以执行的脚本插入到表单.图片.动画或超链接文字等对象内.当用户打开这些对象后,攻击者所植入的脚本就会被执行,进而开始攻击. 可以被用作脚本植入的HTML标签一般包括以下几种: 1.<script>标签标记的javascript和vb

PHP漏洞全解(二)-命令注入攻击

本文主要介绍针对PHP网站常见的攻击方式中的命令攻击.Command Injection,即命令注入攻击,是指这样一种攻击手段,黑客通过把HTML代码输入一个输入机制(例如缺乏有效验证限制的表格域)来改变网页的动态 生成的内容.使用系统命令是一项危险的操作,尤其在你试图使用远程数据来构造要执行的命令时更是如此.如果使用了被污染数据,命令注入漏洞就产生了. 命令注入攻击 PHP中可以使用下列5个函数来执行外部的应用程序或函数 system.exec.passthru.shell_exec.“(与s

PHP漏洞全解(四)-xss跨站脚本攻击

本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站.攻击者利用跨站请求伪造能够轻松地强迫用户的浏览器发出非故意的HTTP请求,如诈骗性的电汇 请求.修改口令和下载非法的内容等请求. XSS(Cross Site Scripting),意为跨网站脚本攻击,为了和样式表css(Cascading Style Sheet)区别,缩写为XSS 跨站脚本主要

PHP漏洞全解(七)-Session劫持

本文主要介绍针对PHP网站Session劫持.session劫持是一种比较复杂的攻击方法.大部分互联网上的电脑多存在被攻击的危险.这是一种劫持tcp协议的方法,所以几乎所有的局域网,都存在被劫持可能. 服务端和客户端之间是通过session(会话)来连接沟通.当客户端的浏览器连接到服务器后,服务器就会建立一个该用户的session.每个用 户的session都是独立的,并且由服务器来维护.每个用户的session是由一个独特的字符串来识别,成为session id.用户发出请求时,所发送的htt

Fortify SCA 分析代码漏洞全解

上次介绍了用FindBugs辅助分析代码漏洞,这次换了一个工具:Fortify SCA Demo 4.0.0.Fortify是一个在安全方面挺出名的公司,这里就不多说了.先介绍一下主角:Fortify SCA Demo 4.0.0,虽然现在不知道Fortify SCA的版本是多少,但可以肯定的是,Fortify SCA Demo 4.0.0是一个比较旧的Fortify SCA分析器了,并且还是Demo版的,所以无论是界面还是功能上都是比较简陋的.由于Fortify SCA不是开源的工具,这里就不

rpm包管理功能全解

rpm包管理功能全解            linux rpm问题:怎样查看rpm安装包的安装路径                     rpm -qa l grep  xxxxxx.rpm                    rpm的命令:rpm  [OPTIONS]  [PACKAGE_FILE]            安装:-i, --install            升级:-U, --update, -F, --freshen            卸载:-e, --erase