以编程方式从另一个文件设置一个值 [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,因为它是不可变的。