iOS 代理传值

代理,顾名思义就是委托别人办事,当一件事发生后,自己不处理,让别人来处理。代理本身是一种设计模式。是把一个类自己需要做的一部分事情,让另一个类来完成。代理传值就是要声明一个协议,声明一个遵守这个协议的代理变量,在另一个需要传值的界面,实现这个代理里的方法,以实现代理传值的功能。
* 在LGCalendar.h文件里声明一个协议:

@protocol LGCalendarDelegate <NSObject>
@optional
- (void)currentDate:(NSString *)dateStr;
@end
  • 再LGCalendar.h文件的@interface下面声明一个变量:
@property (nonatomic, assign) id<LGCalendarDelegate> delegate;
  • 在LGCalendar.m文件里需要传值的地方实现代理
 if (self.delegate && [self.delegate respondsToSelector:@selector(currentDate:)]) {

        [self.delegate currentDate:self.dateString];
    }

*在其他控制器里调用该代理方法:

1.遵守协议
@interface CalenderVC ()<LGCalendarDelegate>
2.给代理赋值
LGCalendar *calendar = [[LGCalendar alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, 240)];
    [self.view addSubview:calendar];
    calendar.delegate = self;//设置代理
    self.LGCalendar = calendar;
3.实现代理方法
-(void)currentDate:(NSString *)dateStr
{
     NSLog(@"%@",dateStr);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值