Установка значения в один файл из другого программно [Swift]

Не то же самое, что: Передача значений... и Swift - программно... не помогли для моей ситуации.

Когда я нажимаю кнопку в одном файле (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)
    }
}

Что мне не хватает?


person tazboy    schedule 18.05.2015    source источник
comment
вы также можете использовать синглтон :)   -  person Mohammad Nurdin    schedule 18.05.2015
comment
Не используйте синглтон   -  person Ian    schedule 18.05.2015


Ответы (1)


Вам нужно преобразовать popVC как PopoverViewController, чтобы вы могли установить свойство bookName, поскольку NSViewController не имеет свойства bookName:

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

Затем вам нужно будет представить контроллер представления, который вы только что создали, используя presentViewController(_:animated:completion:)

Кроме того, в вашем классе PopoverViewController вы должны использовать var вместо bookName, потому что он неизменен как есть.

person Ian    schedule 18.05.2015
comment
Я не понимал, что мне тоже нужно использовать presentViewController. Спасибо. - person tazboy; 18.05.2015