不一样:Passing values ...和Swift - programmatically ...对我的情况没有帮助。
当我按下一个文件中的按钮(NSViewController)
时@IBAction func bookPressed(sender: NSButton) {
var popVC = NSStoryboard(name: "Main",
bundle: nil)?.instantiateControllerWithIdentifier("PopoverViewController") as? NSViewController
popVC.bookName = "hello"
}
我希望此文件显示bookName =" hello"
的结果class PopoverViewController: NSViewController {
let bookName: String = ""
override func viewDidLoad() {
super.viewDidLoad()
println(bookName)
}
}
我错过了什么?
答案 0 :(得分:1)
您需要将popVC强制转换为PopoverViewController
,以便设置bookName
属性,因为NSViewController
没有属性bookName
:
var popVC = NSStoryboard(name: "Main",
bundle: nil)?.instantiateControllerWithIdentifier("PopoverViewController") as? PopoverViewController
然后,您需要使用presentViewController(_:animated:completion:)
此外,在PopoverViewController
课程中,您应该var
使用bookName
,因为它是不可变的。