一.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 页面一致