block浅析

对block的了解不是特别多,平常用代理用的比较多;

Block写法:
^(传入参数列){行为主体};
Block实体开头是“^”,接着是由小括号所包起来的参数列(比如 int a, int b, int c),行为主体由大括号包起来,行为主体可以用return回传值,如果没有参数列要写成: ^(void)。
在Block的{}体内,是不可以对外面的变量进行更改的
当然block还有很多的知识点,今天主要说一下传值的问题
使用Block作为property,实现两个页面之间传值,


//MyOneViewController.h 文件
//MyOneVC 中的点击事件
-(void)buttonPushClick:(UIButton *)button
{

MyTwoViewController ***myTwoVC = [[MyTwoViewController alloc] init];
myTwoVC.MyTwoVCBlock=^(NSString *textString){
[self refreshLabelText:textString];
};
[self.navigationController pushViewController:myTwoVC animated:YES];

}
//MyTwoVCBlock方法
-(void)refreshLabelText:(NSString *)textStr
{
NSLog(@"block回调中的方法---");
}


//MyTwoViewController.h 文件
@interface MyTwoViewController : UIViewController
//定义block
@property(nonatomic, copy) void (^MyTwoVCBlock)(NSString *textString);
@end

//MyTwoViewController.m 文件
//当点击按钮的时候将MyTwoViewVC中输入框的值传回到MyOneVC中
-(void)buttonPopClick:(UIButton *)button
{
//设置block
if (self.MyTwoVCBlock) {
//self.textFiled 是MyTwoVC中的输入框
self.MyTwoVCBlock(self.textFiled.text);
}
[self.navigationController popViewControllerAnimated:YES];
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Block 的使用有两种:1.独立Block 。2.内联Block 。 《一》独立Block 使用方式 一、定义一...
    乡村小子阅读 2,540评论 0 0
  • Block 的本质是可以截取自动变量的匿名函数。 一.block的三种定义方式 1.返回值类型(^block的名字...
    苹果上的小豌豆阅读 2,325评论 0 0
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,388评论 30 472
  • block是语言的的扩展功能,它是一种带有自动变量(局部变量)的匿名函数. /******************...
    long2016阅读 1,696评论 0 1
  • 山本耀司说,“自己”这个东西是看不见的。撞上一些别的什么,反弹回来,才了解“自己”。 所以,跟很强的东西、可怕的东...
    她总阅读 884评论 1 2