关于UIActionSheet(上拉菜单)的使用

来源:互联网 发布:v380监控软件官网 编辑:程序博客网 时间:2024/05/20 05:59

必须使用Protocol,在类定义的地方定义使用UIActionSheetDelegate协议,

@interface XXXController : UIViewController <UIActionSheetDelegate> {...

 

在程序里面调用

UIActionSheet *actionSheet = [[UIActionSheet alloc]

  initWithTitle:@"Are you sure?"         //标题

  delegate:self                  //此处指定处理按钮按下之后的事件的类,该类必须实现UIActionSheetDelegate协议

  cancelButtonTitle:@"Cancel" 

  destructiveButtonTitle:@"OK"

  otherButtonTitles:@"button1", @"button2", nil];  //可指定很多个button,最后一个参数必须为nil,此为OBJC特殊特性

[actionSheet showInView:self.view];   //在哪个view里面弹出上拉菜单

[actionSheet release];    //一定要release

 

记得最后一定要release!

 

处理按钮事件的方法为实现UIActionSheetDelegate协议的actionSheet方法:

- (void)actionSheet:(UIActionSheet *)actionSheet

didDismissWithButtonIndex:(NSInteger)buttonIndex

{

    if( buttonIndex != [actionSheet cancelButtonIndex]){

        //...

    }

}

 

心得:IOS开发严格follow Model-View-Control模式,仔细想来,原因可能是为了保证人机交互的及时性,MVC可以让view变得非常独立,不受Control的影响,这样一些界面上面的动画特效就的实现不会受后台control的影响,用户体验好。我猜想应该是这个原因吧。