ios storyboard 传参 返回传参(segue)

ios storyboard 传参 返回传参(segue),第1张

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/993597.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存