关于delegate(代理)总结

来源:互联网 发布:人工智能 百度网盘 编辑:程序博客网 时间:2024/06/04 19:53
stackoverflow  上讲解:http://stackoverflow.com/a/12660523/4563358

 

delegate是将需要处理交给自己的代理。

在自己的对应的类中.h文件中申明对应的delegate

@class CSPopMenu;@protocol CSPopMenuDelegate <NSObject>@optional-(void)PopMenuDimiss:(CSPopMenu *)popMenu;@end

插入一个可选择的方法,定义一个协议。

@property(nonatomic,weak)id <CSPopMenuDelegate> delegate;

delegate属性设定。

在类的.m文件中

-(void)dismiss{    if ([self.delegate respondsToSelector:@selector(PopMenuDimiss:)]) {        [self.delegate PopMenuDimiss:self];    }    [self removeFromSuperview];  }

调用对应的delegate的方法。

 

要对这个类进行相关的操作,那么首先你要成为这个类的一个代理

 CSPopMenu *menuView= [[CSPopMenu alloc]initWithContentView:menuTableView];    menuView.popMenuPosition = CSPopMenuBackgroundleft;    [menuView showRect:CGRectMake(100, 100, 100, 100)];    menuView.delegate = self;

把当前的类成为对应的类的一个代理。

然后就可以调用代理方法

//设置对应的转动的方向-(void)PopMenuDimiss:(CSPopMenu *)popMenu{    CSMainBtn *mainBtn = (CSMainBtn *)self.navigationItem.titleView;    [mainBtn setImage:[UIImage imageNamed:@"navigationbar_arrow_down"] forState:UIControlStateNormal];    }

得到的效果如图

使得首先右边的箭头改变方向。

 

0 0
原创粉丝点击