一尘不染

在Swift中的视图控制器之间传递数据

swift

我正在尝试将应用程序从Objective-C转换为Swift,但是我找不到如何使用Swift在视图之间传递数据。我的Objective-C代码是

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
AnsViewController *ansViewController;
ansViewController = [storyBoard instantiateViewControllerWithIdentifier:@"ansView"];
ansViewController.num = theNum;
[self presentViewController:ansViewController animated:YES completion:nil];

这样做是从根本上获取变量TheNum,并将其传递给另一个视图控制器上的变量num。我知道这可能是一个简单的问题,但是我对Swift感到非常困惑,因此,如果有人可以解释他们如何将其更改为Swift,将不胜感激!

谢谢


阅读 274

收藏
2020-07-07

共1个答案

一尘不染

假设我们站在 firstView 转到 DetailView,
并希望将数据从firstView传递到Detailview。要使用情节提要进行此操作,在firstView处,我们将有一个方法:

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if (segue.identifier == "segueTest") {
      //Checking identifier is crucial as there might be multiple
      // segues attached to same view
      var detailVC = segue!.destinationViewController as DetailViewController;
      detailVC.toPass = textField.text
    }
}

然后在 DetailView 类中声明一个变量:

var toPass: String!

那么您可以使用变量toPass(当然,您可以根据需要更改变量的类型,在此EX中,我只是演示字符串类型)。

2020-07-07