1、创建一个Single View Application工程,命名为:ActionSheetDemo,如下图
2、在ViewController.xib上放置一个Button,Title为“删除”
修改ViewController.h,添加操作:
将Button“删除”的Touch Up Inside与操作delete关联起来(操作方法上一篇已讲过)
3、修改Controller ViewController,让其实现协议UIActionSheetDelegate:
4、修改ViewController.m
实现操作delete,如下
ViewController作为ActionSheet的代理,需要实现协议中定义的方法,有2中实现方法
方法一:实现didDismissWithButtonIndex,在ActionSheet消失后做提示处理
方法二,实现clickedButtonAtIndex,在ActionSheet上的按钮被点击时做处理
两种方法都是通过buttonIndex判断当前点击的按钮,做不同处理
演示方法,doDelete没有实现实际操作,如下
5、编译、运行,效果如下:
2、在ViewController.xib上放置一个Button,Title为“删除”
修改ViewController.h,添加操作:
-(IBAction)delete:(id)sender;
将Button“删除”的Touch Up Inside与操作delete关联起来(操作方法上一篇已讲过)
3、修改Controller ViewController,让其实现协议UIActionSheetDelegate:
//修改,实现UIActionSheetDelegate协议 @interface ViewController : UIViewController
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、编译、运行,效果如下:
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2303
- 用户1336
- 访客11157317
每日一句
There is always a better way.
总有更好的办法。
总有更好的办法。
IntelliJ IDEA2018~2019.1激活码-注册码
C++实现NAT检测程序
Google Play商城将85款恶意App下架
打开显示interface.png 或者显示interface.swf
【黑苹果安装】——如何在windows下操作EFI分区
Android简单树状实现
Android 8.0应用图标适配
Android Studio3.4.1更新及槽点
C/C++通过WMI和系统API函数获取系统硬件配置信息
DuiLib编译出错:成员声明中不允许限定名
Java中的(耦合)控制反转
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is
#ifdef _DEBUG失效问题
新会员