如何在 Swift 中的视图之间传递数据

Posted

技术标签:

【中文标题】如何在 Swift 中的视图之间传递数据【英文标题】:how to pass data between view in Swift 【发布时间】:2015-01-02 18:53:57 【问题描述】:

我有两个视图控制器,我想在按下确定按钮时将数据从第一个视图传递到第二个视图,并在按下取消时移动到第二个视图而不传递任何数据

我写了这段代码

@IBAction func submitL() 
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
     func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
        var third = segue.destinationViewController as ViewController
        third.lastName = theLastName.text
        third.name = theName.text
    




此代码无效

【问题讨论】:

“没用”是没有意义的。发生了什么?有什么问题? 当我按下确定按钮时,我没有得到任何东西 【参考方案1】:

将您的 prepareForSegue() 方法从您的提交函数中取出以供初学者使用。之后查找“performSegueWithIdentifier”,你会看到这一切是如何工作的。

self.performSegueWithIdentifier("nameOfYourSegue", sender: self)

Sending data with Segue with Swift

【讨论】:

确定按钮有效,但我收到此消息“2015-01-02 21:07:42.364 Test[676:18062] 警告:尝试在 上呈现Test.choose: 0x7fcad12ea860> 其视图不在窗口层次结构中!”当我按下取消按钮时,第一个视图中的先前数据也会消失 您可以通过多种方式完成此任务,您可以根据个人喜好选择一种。本质上,您只是在单击按钮时触发一个操作,该操作将这些文本字段的字符串值发送或不发送到您在 prepareForSegue 函数中获取引用的视图控制器。 2 个不同的动作,1 个基于发送者的动作,存储到 CoreData,然后在 viewWillAppear 上拉取该值等;这可以通过多种方式解决。通过教程或 Apple Docs 掌握 segues 的一般工作原理,它会更加清晰。获取引用,传递对象。

以上是关于如何在 Swift 中的视图之间传递数据的主要内容,如果未能解决你的问题,请参考以下文章

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

在 Swift 中的 ONE ViewController 中的视图之间传递数据

在 Swift 中的视图控制器之间传递自定义类数据

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

在没有Segues的故事板之间传递变量 - Swift

swift 4 中使用 performSegue 打开的关闭页面时,如何在视图控制器和 TableViewController 之间传递数据?