iOS开发-代理传值

代理传值的步骤:

需要传值的界面操作步骤

1.声明代理协议

2.声明代理方法

3.声明一个属性,用来表示当前类对象的代理

4.让代理执行对象的方法,实现界面间从下级界面到上级界面的通讯

接收传值的界面操作步骤:

1.遵循代理协议

2.指定当前的控制器为传值界面控制器的代理

3.实现代理方法

需要传值的界面-SecondViewController

#import <UIKit/UIKit.h>

// 1.声明协议进行传值

@protocol SecondVCDelegate

// 2.通过该协议方法更改上个界面中label.text

- (void)changeLabelText:(NSString*)aString;

@end

@interface SecondViewController :UIViewController

// 3.声明一个属性,用来表示当前类对象的代理

@property(nonatomic,assign) id<SecondVCDelegate> delegate;

@end

- (void)popToFirstVC:(UIButton*)sender

{

[self.navigationController popViewControllerAnimated:YES];

// 4.让代理执行对象的方法,实现界面间从下级界面到上级界面的通讯

if([_delegaterespondsToSelector:@selector(changeLabelText:)]) {

[_delegate changeLabelText:self.textField.text];

}

}

接收传值的界面-FirstViewController

#import "FirstViewController.h"

#import" SecondViewController.h"

 //1.遵循代理协议

@interface FirstViewController() <SecondVCDelegate>

- (void)pushToNextVC:(UIButton*)sender

{

SecondViewController*secondVC = [[SecondViewController alloc]init];

secondVC.labelText=self.label.text;

// 2.指定当前的控制器为secondVC的代理

secondVC.delegate=self;

[self.navigationController pushViewController:secondVCanimated:YES];

}

// 3.实现代理方法

#pragma mark - SecondVCDelegate

- (void)changeLabelText:(NSString*)aString

{

self.label.text= aString;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容