逆向传值
三、实现步骤
1、传值方
//.h 文件/** * 类型自定义 */typedef void (^ReturnValueBlock) (NSString *strValue);@interface NextViewController : UIViewController/** * 声明一个ReturnValueBlock属性,这个Block是获取传值的界面传进来的 */@property(nonatomic, copy) ReturnValueBlock returnValueBlock;@end=================================================================//.m 文件#import "NextViewController.h"@interface NextViewController ()@property (weak, nonatomic) IBOutlet UITextField *inputText;- (IBAction)back:(id)sender;@end@implementation NextViewController- (void)viewDidLoad {[super viewDidLoad];self.navigationItem.title = @"第二个界面";}/** * 返回上一个界面 * * @param sender 按钮 */- (IBAction)back:(id)sender {NSString *inputString = self.inputText.text;if (self.returnValueBlock) {//将自己的值传出去,完成传值self.returnValueBlock(inputString);}[self.navigationController popViewControllerAnimated:YES];}@end2、捕获方
//.m 文件#import "ViewController.h"#import "NextViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UILabel *nextPassedValue;- (IBAction)next:(id)sender;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];}//点击按钮跳转到第二个界面- (IBAction)next:(id)sender {NextViewController *nvc = [[NextViewController alloc]init];//赋值Block,并将捕获的值赋值给UILabelnvc.returnValueBlock = ^(NSString *passedValue){self.nextPassedValue.text = passedValue;};[self.navigationController pushViewController:nvc animated:YES];}@end总结