【问题标题】:How to pass data to another storyboard in Xcode?如何将数据传递到 Xcode 中的另一个故事板?
【发布时间】:2012-03-31 04:34:26
【问题描述】:

在 iPhone 应用程序中,如何将数据从一个视图(xib 文件)传递到另一个故事板?

例如,

我有“welcome.xib”,其中包含 nameTextfield 和 nextButton ,用户将他们的名字输入到 nameTextfield 并单击下一步

应用程序将导航到“main.storyboard”并在“main.storyboard”中的 userNameLabel 上显示 nameTextfield.text 中的文本

到目前为止我所知道的:

  • 我知道如何在视图之间传递数据(从一个 xib 文件到另一个 xib 文件)
  • 我知道如何从视图(xib 文件)导航到另一个故事板

【问题讨论】:

  • “我知道如何在视图之间传递数据(从一个 xib 文件到另一个 xib 文件)”......那么你的问题是什么?看来你已经知道答案了。
  • 如果您使用故事板,为什么要为欢迎视图控制器创建单独的 xib,而不是将其作为 main.storyboard 的一部分?

标签: iphone ios xcode xcode4.2 uistoryboard


【解决方案1】:

在你想要传递信息的 ViewController 中覆盖 -prepareForSegue:sender: 方法。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    DetailViewController *sc = [segue destinationViewController];
    // Here you can set variables in detailViewController. For example if you had a NSString called name
    sc.name = @"name_here";
    // Or you could do
    [sc setName:@"name_here"];
}

【讨论】:

    【解决方案2】:

    Swift 4.2+

    将此添加到您要从中发送数据的视图控制器 -

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
            guard
                let destination = segue.destination as? viewControllerName
                else {
                    return
            }
            destination.variable =data
        }
    

    确保变量的名称与您要将数据发送到的变量名称相同,viewControllerName 也应完全相同。

    然后使用以下命令在按钮单击或任何完成处理程序内执行操作 -

    self.performSegue(withIdentifier: "viewControllerIdentifierName", sender: nil)
    

    还要确保连接两者的情节提要与您在 withIdentifier 中键入的标识符名称相同,否则应用程序将崩溃。

    【讨论】:

      猜你喜欢
      • 2019-12-31
      • 2012-03-10
      • 1970-01-01
      • 2013-06-16
      • 2017-02-22
      • 2015-05-02
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      相关资源
      最近更新 更多