您可以在没有按钮的情况下以编程方式关闭视图控制器吗?- OS X

che*_*ale 3 macos user-interface xcode cocoa swift

我正在尝试以编程方式关闭我的 Cocoa 应用程序中的视图控制器。这可能吗?我在 Objective-C 中看到了一篇关于它的帖子,但我一直没能找到一个适用于 Swift 的帖子。我已经在函数中尝试了这段代码,然后调用了该函数。self.dismissViewController(self)但是它给了我 SIGABRT。我不希望用户必须按下按钮或做任何事情,但只要我“显示”下一个视图控制器就关闭后控制器(我有一个自动按下 IBOutlet 按钮,它会自动将视图发送到下一页,但似乎无法关闭当前页面)。是否有关闭父视图控制器的工作代码?

che*_*ale 5

所以我想出了如何让它发挥作用 - 感谢大家的建议。这是对我有用的方法 - 我将故事板中的按钮连接为插座(单击自身)和函数(关闭自身),并将按钮的不透明度设置为 0,因此它不可见。我不得不特别喜欢并添加一个 NSTimer 来像这样单击它,因为我需要它在关闭之前以编程方式打开另一个视图控制器。希望这对未来的人有所帮助!

 class Begin: NSViewController {
   @IBOutlet var close: NSButton!

override func viewWillAppear() {

     NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: #selector(click), userInfo: nil, repeats: true)
 }

func click() {
    close.performClick(nil)
}


override func viewDidLoad() {
    super.viewDidLoad()
}

@IBAction func close(sender: AnyObject) {
    self.view.window?.close()
}
} 
Run Code Online (Sandbox Code Playgroud)