关于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];
    
}

得到的效果如图

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

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值