HardBirch

iPhone开发【四】常用控件之ActionSheet与AlertView

时间:12-10-23 栏目:iOS移动应用开发技术 作者:张飞不张,文采横飞 评论:0 点击: 1,930 次

实现的功能:练习ActionSheet与AlertView的使用方法

关键词:ActionSheet AlertView

1、创建一个Single View Application工程,命名为:ActionSheetDemo,如下图


2、在ViewController.xib上放置一个Button,Title为“删除”

      修改ViewController.h,添加操作:

-(IBAction)delete:(id)sender;

     将Button“删除”的Touch Up Inside与操作delete关联起来(操作方法上一篇已讲过

3、修改Controller ViewController,让其实现协议UIActionSheetDelegate:

//修改,实现UIActionSheetDelegate协议 @interface ViewController : UIViewController<UIActionSheetDelegate>


4、修改ViewController.m

     实现操作delete,如下

//执行删除操作 -(IBAction)delete:(id)sender{ UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"确定要删除该服务器?" delegate:self //actionSheet的代理,按钮被按下时收到通知,然后回调协议中的相关方法 cancelButtonTitle:@"取消" destructiveButtonTitle:@"确定" otherButtonTitles:nil]; //展示actionSheet [actionSheet showInView:self.view]; }

ViewController作为ActionSheet的代理,需要实现协议中定义的方法,有2中实现方法

方法一:实现didDismissWithButtonIndex,在ActionSheet消失后做提示处理

//方法1 -(void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{ NSLog(@"didDismissWithButtonIndex"); UIAlertView *alert = nil; if(buttonIndex == [actionSheet destructiveButtonIndex]){//确定 //NSLog(@"确定"); alert = [[UIAlertView alloc] initWithTitle:@"结果" message:@"删除完毕" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alert show]; }else if(buttonIndex == [actionSheet cancelButtonIndex]){//取消 NSLog(@"取消"); } }


方法而,实现clickedButtonAtIndex,在ActionSheet上的按钮被点击时做处理

//方法2 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ NSLog(@"clickedButtonAtIndex"); UIAlertView *alert = nil; if(buttonIndex == [actionSheet destructiveButtonIndex]){//确定 //NSLog(@"确定"); //执行删除操作 [self doDelete]; alert = [[UIAlertView alloc] initWithTitle:@"结果" message:@"删除完毕" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alert show]; }else if(buttonIndex == [actionSheet cancelButtonIndex]){//取消 NSLog(@"取消"); } }


两种方法都是通过buttonIndex判断当前点击的按钮,做不同处理

演示方法,doDelete没有实现实际操作,如下

-(void)doDelete{ NSLog(@"执行删除操作"); }


5、编译、运行,效果如下:


点击下载本文源代码

声明: 本文由( 张飞不张,文采横飞 )原创编译,转载请保留链接: iPhone开发【四】常用控件之ActionSheet与AlertView

iPhone开发【四】常用控件之ActionSheet与AlertView:等您坐沙发呢!

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐