block常见写法总结

2017年6月22日
一.常用写法(子页面回调给父页面)
1.子类cell视图

typedef void(^blk_orderListModel)(HuOrderListModel *);
@property (nonatomic, copy) blk_orderListModel payClick;
self.payClick(_dataModel);

2.父类试图

            cell.payClick = ^(HuOrderListModel *orderListModel) {
//                [weakSelf enterPayFailurePage:orderListModel];
            };

2017年6月6日
一.ARC模式下 属性定义类型
1.block 一般定义成copy

用法1. 当前页面A 给其他页面 回调
A页面代码

typedef void(^blk_t)(void);
@property (nonatomic, copy) blk_t changeColorTimeOut;
- (void)setChangeColorTimeOut:(blk_t)blk
{
    if (_changeColorTimeOut == nil) {
        _changeColorTimeOut = blk;
        _needChangeColor = YES;
    }
}
- (void)createCountTime
{
//......
    if (_changeColorTimeOut) {
       self.changeColorTimeOut();//修改颜色
       _needChangeColor = NO;
    }
}

B页面代码

_coutTimeV.changeColorTimeOut = ^(){
     weakSelf.coutTimeV.timeL.textColor = [HuConfigration uiColorFromString:@"#f66767"];
 };

用法2. 其他页面给A页面数据 【其实也可以直接给,不需要用block,不过这样写就可以少写赋值更新函数,而且可以在inti的时候就回调】
A页面代码

typedef void(^TrainCourseIntroduce) (TrainingModel *model);
@property (nonatomic, copy) TrainCourseIntroduce trainCourseIntroduce;
- (void)viewDidLoad {
    [super viewDidLoad];
    WS(weakSelf);
    self.trainCourseIntroduce = ^(TrainingModel *model) {
        weakSelf.trainModel = model;
        [weakSelf.tableView reloadData];
    };
}

B页面代码

weakSelf.introduceCtrl.trainCourseIntroduce(model);

2017年5月27日
一.两个相关页面都有交卷功能,如何用一个接口实现


image.png

1.原理:通过block,将答题卡的交卷动作返回给考试界面实现
2.实现:

//  HuExerciseCardViewController.h
@interface HuExerciseCardViewController : HuViewController
@property (nonatomic, strong) void (^upload)(void);
@end

@implementation HuExerciseCardViewController
- (void)uploadPaper
{
    self.upload();
}

@end

#import "HuTestPracticeViewController.h"
@implementation HuTestPracticeViewController
- (void)enterExerciseCardPage
{
    HuExerciseCardViewController *vc = [[HuExerciseCardViewController alloc] initWithExeriseId:_curId];
   
    WS(weakSelf);
    vc.upload = ^(){
        [weakSelf uploadPaper:NO];
    };
}

- (void)uploadPaper:(BOOL)isTimeOut
{
}
@end

如果您发现本文对你有所帮助,如果您认为其他人也可能受益,请把它分享出去。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.block 语法 (block 语句)a.//全 b.//省略返回值 c.//省略返回值和参数 2.bloc...
    wangyu2488阅读 920评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,156评论 1 32
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,617评论 0 17
  • 教育的渐进,一定是从他人教育走向自我教育,也必然从家庭教育的言传身教,进入学校教育的规矩与养成,再融进社会...
    畅游的鱼儿阅读 234评论 0 2
  • 心情不好的时候,总想写点东西,写点什么呢?脑子里却什么语言都想不起来!是想说我太可怜了,还是说我的婚姻太可怜?一切...
    贝儿和荷儿阅读 151评论 0 0