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协议
@inte易做图ce 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 ,