以编程方式从另一个文件设置一个值 [Swift]
Setting a value in one file from another programmatically [Swift]
不等于:Passing values ... and 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)
}
}
我错过了什么?
您需要将 popVC 转换为 PopoverViewController
以便您可以设置 bookName
属性,因为 NSViewController
没有 属性 bookName
:
var popVC = NSStoryboard(name: "Main",
bundle: nil)?.instantiateControllerWithIdentifier("PopoverViewController") as? PopoverViewController
然后您需要展示您刚刚使用 presentViewController(_:animated:completion:)
实例化的视图控制器
此外,在您的 PopoverViewController
class 中,您应该将 var
用于 bookName
,因为它是不可变的。
不等于:Passing values ... and 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)
}
}
我错过了什么?
您需要将 popVC 转换为 PopoverViewController
以便您可以设置 bookName
属性,因为 NSViewController
没有 属性 bookName
:
var popVC = NSStoryboard(name: "Main",
bundle: nil)?.instantiateControllerWithIdentifier("PopoverViewController") as? PopoverViewController
然后您需要展示您刚刚使用 presentViewController(_:animated:completion:)
此外,在您的 PopoverViewController
class 中,您应该将 var
用于 bookName
,因为它是不可变的。