本文主要是介绍关于delegate(代理)总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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]; }
得到的效果如图
使得首先右边的箭头改变方向。
这篇关于关于delegate(代理)总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!