清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
//把第二个页面的值传给第一个页面 反向传值 使用代理 //在第二个页面设置代理 //.h文件 #import <UIKit/UIKit.h> //我们可以把协议写在主动方的类中 @protocol ChangeStatus <NSObject> //代理方法 - (void)changeStatus:(NSString *)isOn; @end @interface SecondViewController : UIViewController //设置代理 弱引用 @property (nonatomic,assign) id <ChangeStatus> delegate; @end //.m文件 #import "SecondViewController.h" @interface SecondViewController () @end @implementation SecondViewController - (void)viewDidLoad { [super viewDidLoad]; [self changeStatus]; } #pragma mark - 查看代码是否实现 - (void)changeStatus{ //检测代理有没有实现changeStatus:方法 if([self.delegate respondsToSelector:@selector(changeStatus:)]){ [self.delegate changeStatus:@"123"]; }else{ NSLog(@"代理没有实现changeStatus:方法"); } } - (void)btnClick:(UIButton *)button{ //返回 [self dismissViewControllerAnimated:YES completion:nil]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end //第一个页面 //.h文件 #import <UIKit/UIKit.h> //导入头文件 #import "SecondViewController.h" //遵守协议 作为第二张的代理 @interface RootViewController : UIViewController <ChangeStatus> @end //.m文件 #import "RootViewController.h" @interface RootViewController () { SecondViewController *_svc; } @end @implementation RootViewController - (void)viewDidLoad { [super viewDidLoad]; //主动方往往 创建在被动方里面 _svc = [[SecondViewController alloc] init]; //设置代理 _svc.delegate = self; } //代理要实现的方法 - (void)changeStatus:(NSString *)isOn{ NSLog(@"%@",isOn); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end