我试过这个密码

  let secondView = SecondViewController(nibName: "secondView", bundle: nil)
    secondView.secondViewLabel.text = self.TextBox.text
    navigationController?.pushViewController(secondView, animated: true)

我正试图将文本框中的值传递给下一个视图控制器中的标签
我还尝试将文本框值复制到第二个视图控制器中声明的sting,该控制器也返回nil。
let secondView = SecondViewController(nibName: "secondView", bundle: nil)
    secondView.toPass = self.TextBox.text
    navigationController?.pushViewController(secondView, animated: true)
    println(secondView.toPass) // i get the string printed here

在第二视图控制器中
      var toPass:String!

在视图中加载
    secondLabel.text = toPass
     println(toPass) // i get the string printed nil

帮帮我伙计们我是斯威夫特的新手

最佳答案

将toPass的类型设置为字符串条件,如下所示
var toPass: String?
在viewDidLoad中,执行以下操作:

if let passedString = toPass {
    secondLabel.text = toPass
    println(toPass)
}

然后在if-let块中放置一个断点,查看toPass是否有值或根本没有设置值。真的需要知道文本框是什么类型。
[编辑2]
如果问题是在viewControllersecondView从nib解码之前设置了该值,我建议您制作一个方便的初始值设定项,它使用initWithNib,但也接受额外的标题字符串或其他任何字符串。在这里,您可以将textLabel文本的值设置为新初始值设定项采用的参数。当然,这意味着您必须将UIViewController子类化。

07-25 21:30