将数据从文本字段传递到下一个视图

Posted

技术标签:

【中文标题】将数据从文本字段传递到下一个视图【英文标题】:Passing data from textfield to next view 【发布时间】:2015-01-14 19:08:40 【问题描述】:

我正在尝试用 Xcode 6.1 和 Swift 语言开发一个基本的应用程序。

我似乎找不到任何有助于解决此问题的 ios 8、Xcode6 和 Swift 资源。一切仍然是 xcode 5 和 IOS 7。

我用图像按钮和 segues 完成了整个故事板。只需要编写脚本。

有 6 个 segue 都带有 segue "show"。

我只是想为每个视图控制器捕获一个文本字段。按下按钮后转到下一个视图控制器。

prepareForSegue 让我很困惑。

如何从文本字段中捕获数据并将其保存到按钮按下时的变量中并将该变量信息发送到下一个视图控制器?

我希望将文本字段保存到变量中,或者让最终视图控制器访问每个视图控制器的所有数据输入,然后进行一些基本的数学运算。

任何机构都可以帮助解决这个问题?

【问题讨论】:

【参考方案1】:

假设您在这里有两个视图控制器,您将如何将值传递给第二个视图控制器。

 class ViewControllerA: UIViewController 
      @IBOutlet var textField: UITextField = nil

      ...

      override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) 
             if (segue.identifier == "segueTest") 
                 var svc = segue!.destinationViewController as ViewControllerB;
                 svc.passedValue = textField.text
             
      
 

 class ViewControllerB: UIViewController 
     var passedValue: String?
     ... 
     override func viewDidLoad() 
          ...
          if let myPassedData = passedValue 
               println(myPassedData)
          

或使用

             let myPassedData = passedValue ?? "" 
               println(myPassedData)
          
     
 

【讨论】:

太棒了,我现在就试试看! 我遇到了一个错误。一行的连续声明必须用“;”分隔在线覆盖 func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) 我还注意到我将两个覆盖添加到同一个视图控制器但我纠正了这一点,但仍然在两个视图控制器上得到相同的错误 继续在你的 Xcode 中生成一个主从应用程序,并查看 prepareForSegue 的方法签名,你可以将我给你的 sn-p 改编为生成的代码。 啊,好的,我会检查一下谢谢!

以上是关于将数据从文本字段传递到下一个视图的主要内容,如果未能解决你的问题,请参考以下文章