故事板初始化和deinit

时间:2017-09-20 23:09:42

标签: swift macos

通过故事板(NS或UI)初始化ViewController时,您是否需要保留对故事板的引用,或者在完成故事板后可以忽略它并将其删除?

class ViewController: NSViewController {

    var secondarySB: NSStoryboard? = nil

    @IBAction
    func loadAndKeep(_ sender: NSButton) {
        //keeping a reference
        secondarySB = NSStoryboard.init(name: NSStoryboard.Name.init(rawValue: "Secondary"), bundle: nil)
        let vc = secondarySB?.instantiateInitialController() as! Secondary
        self.view.addSubview(vc.view)
    }
    @IBAction
    func load(_ sender: NSButton) {
        //ignoring the storyboard after I get the viewcontroller
        let sb = NSStoryboard.init(name: NSStoryboard.Name.init(rawValue: "Secondary"), bundle: nil)
        let vc = sb.instantiateInitialController() as! Secondary
        self.view.addSubview(vc.view)
    }
}

1 个答案:

答案 0 :(得分:1)

您不需要保留对故事板的引用,但您确实需要将实例化的视图控制器添加为子视图控制器。