以编程方式从另一个文件中设置一个值[Swift]

时间:2015-05-18 01:52:33

标签: swift nsviewcontroller

不一样: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)
    }
}

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您需要将popVC强制转换为PopoverViewController,以便设置bookName属性,因为NSViewController没有属性bookName

var popVC = NSStoryboard(name: "Main", 
    bundle: nil)?.instantiateControllerWithIdentifier("PopoverViewController") as? PopoverViewController

然后,您需要使用presentViewController(_:animated:completion:)

呈现刚刚实例化的视图控制器

此外,在PopoverViewController课程中,您应该var使用bookName,因为它是不可变的。