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

How can I dismiss the parent view controller after the second view controller is launched?

我正在 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.
        }
    }
}

您的按钮似乎没有实际执行 dismissViewController()。您实际上是在 viewDidLoad() 中调用此方法。还值得一提的是,您可能想尝试 self.view.window?.close()

只是为了升级之前的答案

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

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