启动第二个视图控制器后,如何关闭父视图控制器?

时间:2016-06-29 19:58:13

标签: swift macos viewcontroller dismiss

我正在使用swift中的OSX应用程序,它以编程方式单击按钮以启动视图控制器。我想以编程方式解除初始视图控制器。

class ViewController: NSViewController {

    @IBOutlet weak var button: NSButton!
    override func viewDidLoad() {
        super.viewDidLoad()
        button.performClick(nil)


        self.dismissViewController(self)
        // Do any additional setup after loading the view.
    }

    override var representedObject: AnyObject? {
        didSet {
        // Update the view, if already loaded.
        }
    }
}

2 个答案:

答案 0 :(得分:1)

看起来您的按钮实际上并未执行dismissViewController()。您实际上是在viewDidLoad()中调用此方法。值得一提的是,您可能希望尝试使用self.view.window?.close()

答案 1 :(得分:1)

只需升级上一个答案

self.view.window?.close()在Swift 4中不起作用,您可能需要尝试下面的代码。

self.view.window?.rootViewController?.dismiss(animated: false, completion: nil)