Block的常見用法

  • 兩個控制器之間傳值

傳送控制器需要添加的代碼

傳送的控制器.h

#import <UIKit/UIKit.h>
//定義Block類型
typedef void(^JFCityViewControllerBlock)(NSString *cityName);


@interface JFCityViewController : UIViewController

@property (nonatomic,copy) JFCityViewControllerBlock choseCityBlock;
- (void)choseCityBlock:(JFCityViewControllerBlock)block;

@end

傳送的控制器.m

//對應於.h文件中的方法,用來給需要接收的控制器調用,然後保存Block到self.choseCityBlock中
- (void)choseCityBlock:(JFCityViewControllerBlock)block {
    self.choseCityBlock = block;
}
...
//這裡開始調用Block,並將[cityData valueForKey:@"city"]字符串偉過去
        __weak typeof(self) weakSelf = self;
            if (weakSelf.choseCityBlock) {
                weakSelf.choseCityBlock([cityData valueForKey:@"city"]);
            }

接收控制器需要添加的代碼

      //只需要設置Block裏面需要做的事情,就等著傳送控制器有值後來調用了!
            [cityViewController choseCityBlock:^(NSString *cityName) {
                self.conditionView.cityName = cityName;
                self.city = cityName;
            }];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为何叫做 shell ? shell prompt(PS1) 与 Carriage Return(CR) 的关系?...
    Zero___阅读 8,377评论 3 49
  • 提問的智慧 How To Ask Questions The Smart Way Copyright © 2001...
    Albert陈凯阅读 7,288评论 0 8
  • ===離開,不見得是錯誤的決定=== 隔日一早,文星伊率先醒來,見到金容仙安穩的枕在自己的手臂上 微微的笑了起來,...
    heomoomoo阅读 6,014评论 0 4
  • 我们的青春 已垂垂老矣 干百次的回眸 再寻不回少年时代 那时春天的田头地边 蚕豆豌豆花儿赛着去开 房前屋后的桃花红...
    频彩阅读 2,761评论 0 0
  • 《甄嬛传》有许多小主气质是相似的,比如纯元皇后与甄嬛,宜修与安陵容,齐妃与祺贵人,华妃与宁嫔等等。 一 (图片来自...
    90后女秀才阅读 4,264评论 0 3