iOS 代码块传值小结

iOS 代码块传值小结

在培训的时候,老师有说过工作的时候代码块传值如果用得溜,对效率挺有帮助的,于是在仔细思索与应用了一天后,总结一下代码块的传值方法

普通代码块传值,下层(view类)数据变化,上层(viewController类)做相应操作
view类定义一个代码块属性, 在VC类上说创建view类时将代码块赋值给代码块属性做相应操作。

view.h类

typedef void (^SaveConsigneeBlock) (void);
typedef void (^MoveViewBlock) (CGFloat,int,int,CGFloat);
typedef void (^RemoveBlock)(AddAddressView *);

@interface AddAddressView : UIView<UITextFieldDelegate>

@property (weak, nonatomic) UITextField *textFP;

@property (strong, nonatomic) RemoveBlock removeBlock;

@property (strong, nonatomic) SaveConsigneeBlock saveBlock;

@property (strong, nonatomic) MoveViewBlock moveBlock;

view.m类调用:

-(void)awakeFromNib{
saveBlock();
}

VC.m类做代码块的操作

View * viewTest = [[NSBundle mainBundle]loadNibNamed:@"AddAddressView" owner:self options:nil][0];
        viewTest.saveBlock = ^(){
            //这里做VC相应的操作
    };

以上是普通代码块传值的问题,同样将代码块作为方法参数,在VC调用view的方法时也可以做相应的操作

平时如果出现代码块循环引用的情况下加入
__block AddAddressView *vie = self
解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值