我试过这个密码
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]
如果问题是在viewController
secondView
从nib解码之前设置了该值,我建议您制作一个方便的初始值设定项,它使用initWithNib,但也接受额外的标题字符串或其他任何字符串。在这里,您可以将textLabel文本的值设置为新初始值设定项采用的参数。当然,这意味着您必须将UIViewController子类化。