关于delegate(代理)总结

发布于:2021-10-01 19:05:53

stackoverflow? 上讲解:http://stackoverflow.com/a/12660523/4563358


?


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


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



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

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



@property(nonatomic,weak)id 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];

}

得到的效果如图



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


?



转载于:https://www.cnblogs.com/asheng/p/4415768.html






相关资源:delegate 轻量及代理软件

相关推荐

最新更新

猜你喜欢