场景A控制器中有一个Label B控制器中有一个文本输入框textField
A push 到B 当,B返回A时,我们让B中文本框的内容展示到A中去
第一步:
在B中定义Block
#import <UIKit/UIKit.h>
typedef void(^PassValueOption)(NSString*);
@interface ZPViewControllerB : UIViewController
@property(nonatomic,copy)PassValueOption option;
@end
第二步:
在A 准备向B push之前
ZPViewControllerB* Vc=[[ZPViewControllerB alloc]init];//初始化一个B控制器
//为B控制器Vc 的option 这个Block赋值
//当然,我们先要取得self
__weak typeof(self) weakSelf=self;
Vc.option=^(NSString* str){
weakSelf.textLabel.text=str;//意思是当你想调用这个block的时候只要传一个NSString进来,就会改变textLabel的文字
};
第三步: 当B控制器要返回A的时候,可以在pop中写 也可以在viewWilldisAppear中写
//执行self.option 这个块代码
self.option(self.textField.text);
至此,返回A控制器的时候,你会发现Label的文字已经改变
时间: 2024-10-13 02:15:40