当前位置:编程学习 > wap >>

iPhone开发[四]常用控件之ActionSheet与AlertView

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

2、在ViewController.xib上放置一个Button,Title为“删除”
      修改ViewController.h,添加操作:
[cpp] 
<span style="font-family:Microsoft YaHei;font-size:18px;">-(IBAction)delete:(id)sender;</span> 
     将Button“删除”的Touch Up Inside与操作delete关联起来(操作方法上一篇已讲过)
3、修改Controller ViewController,让其实现协议UIActionSheetDelegate:
[cpp] view plaincopy
<span style="font-family:Microsoft YaHei;font-size:18px;">//修改,实现UIActionSheetDelegate协议 
@interface ViewController : UIViewController<UIActionSheetDelegate></span> 

4、修改ViewController.m
     实现操作delete,如下
[cpp] 
<span style="font-family:Microsoft YaHei;font-size:18px;">//执行删除操作 
-(IBAction)delete:(id)sender{ 
    UIActionSheet *actionSheet = [[UIActionSheet alloc] 
                                  initWithTitle:@"确定要删除该服务器?"  
                                  delegate:self //actionSheet的代理,按钮被按下时收到通知,然后回调协议中的相关方法 
                                  cancelButtonTitle:@"取消" 
                                  destructiveButtonTitle:@"确定" 
                                  otherButtonTitles:nil]; 
    //展示actionSheet 
    [actionSheet showInView:self.view]; 
}</span> 
ViewController作为ActionSheet的代理,需要实现协议中定义的方法,有2中实现方法
方法一:实现didDismissWithButtonIndex,在ActionSheet消失后做提示处理
[cpp] 
<span style="font-family:Microsoft YaHei;font-size:18px;">//方法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(@"取消"); 
    } 
}</span> 

方法而,实现clickedButtonAtIndex,在ActionSheet上的按钮被点击时做处理
[cpp] 
y:Microsoft YaHei;font-size:18px;">//方法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(@"取消"); 
    } 
}</span> 

两种方法都是通过buttonIndex判断当前点击的按钮,做不同处理
演示方法,doDelete没有实现实际操作,如下
[cpp] 
<span style="font-family:Microsoft YaHei;font-size:18px;">-(void)doDelete{ 
    NSLog(@"执行删除操作"); 
}</span> 

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


补充:移动开发 , IOS ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,