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

来源:互联网 发布:华为畅享5手机壳淘宝 编辑:程序博客网 时间:2024/05/22 06:11

转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/8103321 作者:张燕广

实现的功能:练习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、编译、运行,效果如下:


点击下载本文源代码