一.A 页面跳转到 B 页面

1.A页面跳转

//系统方法 跳转时调用

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

//判断segue的identifier是否是我们刚才设置的 如果不是 则不进行参数传递 依旧会跳转

if ([segue.identifier isEqualToString:@"goto"]) {

//获取要跳转的viewController

UIViewController * view = segue.destinationViewController;

//对跳转目标的str属性进行设置值

[view setValue:@"我是被传递过去的字符串君" forKey:@"str"];//第一个页面参数名

//把自己传过去,这个是用于返回的代理

[view setValue:self forKey:@"delegate"];

}

}

2.B 页面接收参数 b.m页面代码

@interface ViewtowController ()

@property (nonatomic,copy) NSString* str;

@end

- (void)viewDidLoad {

[super viewDidLoad];

_twotext.text = _str;//这个就是第一个页面的参数名

// Do any additional setup after loading the view.

}

二.B页面反回A页面

1.B页面反回按钮

b页面.h 中添加代码

//协定中的方法

@protocol ViewtowDelegate

- (void)passValue:(NSString *)value;

//宣告一个採用Page2Delegate协定的物件

@end

@interface ViewtowController : UIViewController

@property (weak, nonatomic) id delegate;

@end

b 页面.m 添加代码

- (IBAction)backgo:(id)sender {

//两种都可以,返回代码

// [[self navigationController ] popViewControllerAnimated:YES];

[self.navigationController popViewControllerAnimated:YES];

//下面这个是模态框返回

[self dismissViewControllerAnimated:YES completion:nil];

//呼叫协定中的方法并带入page2textField的数值

[_delegate passValue:@"返回值"];

}

2.A 页面添代码 a页面.h代码

#import "ViewtowController.h"//B 页面

a 页面.m 代码

- (void)passValue:(NSString *)value {//passValue和 b 页面一致

//设定page1TextField为所取的的数值

_userName.text = value;

}

还有一个注意一下,A页面跳转 B 页面的时候加这句话

//把自己传过去,这个是用于返回的代理

[view setValue:self forKey:@"delegate"];//delegate和 B 页面一致

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: