在swift中在视图之间传递数据

时间:2014-07-15 02:20:29

标签: ios swift

我正在尝试熟悉swift,但我无法找到如何使用Swift在视图之间传递数据。

class ViewController: UIViewController {

@IBOutlet var field: UITextField
@IBOutlet var butt: UIButton

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if let vc = segue.destinationViewController as? secondViewController {
        if(vc.lab != nil){
            vc.lab.text=self.field.text
            println(self.field.text)
    }
  }

和第二个视图控制器:

class secondViewController: UIViewController {

@IBOutlet var lab: UILabel

override func viewDidLoad() {
    super.viewDidLoad()

}

我想要做的只是使用第一个视图的文本字段的文本更改第二个视图中的标签。 这样就不会给我任何错误,但我不会改变标签。

1 个答案:

答案 0 :(得分:2)

对我来说,这看起来不像是一个Swift问题。它看起来像一个视图生命周期问题。在调用prepareForSegue:时,secondViewController尚未从故事板中加载IBOutlets。更好的解决方案是在文件上设置某种类型的属性,例如

vc.myLabelString = self.field.text

然后在viewDidLoad的{​​{1}}中将文字分配给您的标签。

仅供参考:您可以随时检查视图控制器是否已使用secondViewController

加载了视图