ios storyboard 传参 返回传参(segue)

一.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 页面一致
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值