转载请注明出处,原文网址: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>
实现操作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(@"取消");
}
}
//方法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(@"取消");
}
}
演示方法,doDelete没有实现实际操作,如下
-(void)doDelete{
NSLog(@"执行删除操作");
}
点击下载本文源代码