美文网首页iOS劝退指南
block常见写法总结

block常见写法总结

作者: wangyu2488 | 来源:发表于2017-07-10 10:42 被阅读61次

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

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

相关文章

  • block常见写法总结

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

  • OC block 原理总结

    本文重点总结 OC block 的原理,并带上一些例子,不讨论 block 的写法和应用。 block 的本质总结...

  • Block的用法

    1.block作为属性 写法1:typedef声明block名称 写法2:直接书写 2.block作为参数 写法:...

  • ios ~ 单例的书写与通知、代理、Block简单的传值

    一、通知 二、代理传值 三、Block传值 四、单例的简单写法 总结:*** *** ***

  • Block几种写法的总结

    最近在看Blocks Programming Topics中Creating a Block有如下的这段话: If...

  • block--闭包 的分析使用

    1.object-C中的block 作用:保存一段代码块 2.声明block的写法:block的写法: 类型: 返...

  • block写法

    /**1.^标识后表示block返回数值类型,()表示回传参数2.block都要用copy修饰,复制到堆上,防止释...

  • Block循环引用的四种解决方案

    Block常见的循环引用模型 以下是常见的Block循环引用模型,self引用block,block引用self,...

  • 任务11

    单栏flex写法 单栏inline-block写法 两栏float写法 两栏flex写法 三栏float写法 三栏...

  • Block三种类型及其原理

    block 写法 1.block作为局部变量 2.block作为属性3.block作为形参4.block作为实参 ...

网友评论

    本文标题:block常见写法总结

    本文链接:https://www.haomeiwen.com/subject/xajyhxtx.html