【问题标题】:Setting a value in one file from another programmatically [Swift]以编程方式从另一个文件中设置一个值 [Swift]
【发布时间】:2015-05-18 01:52:33
【问题描述】:

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

我错过了什么?

【问题讨论】:

  • 你也可以使用单例:)
  • 不要使用单例

标签: swift nsviewcontroller


【解决方案1】:

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

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

然后你需要展示你刚刚使用presentViewController(_:animated:completion:)实例化的视图控制器

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

【讨论】:

  • 我没有意识到我也需要使用presentViewController。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-06
  • 1970-01-01
  • 2011-11-16
  • 2015-05-01
相关资源
最近更新 更多