关闭呈现为工作表的NSViewController

时间:2016-07-10 07:20:37

标签: swift macos cocoa nsviewcontroller

让我从头开始告诉你,我有这个初始视图控制器。从初始视图控制器中提取它,我从中进入主视图控制器,然后在初始视图控制器上执行performClose以使其关闭。

现在我在家庭视图控制器中,从这里我将视图控制器呈现为表格[A]。

现在我在A控制器中,从这里我将视图控制器呈现为表格[B]。

现在我在B.现在我想从B视图控制器呈现我的家庭视图控制器。我可以通过从故事板获取视图控制器并使用presentViewControllerAsModalWindow来呈现它,从而轻松实现这一点。但问题是,与此同时,我想关闭B.但我不能这样做。

我已经尝试了这个B [下面给出的代码],它似乎不起作用,当我执行动作时,mac产生一个铃声。

 if let window = self.view.window {
     window.performClose(self)
  }

我可以在B控制器中做dismissController(self),这不是重点。我不想解雇它,我只是想完全关闭它并显示主页。或者还有其他工作吗?我想要做的就是通过关闭它来控制器B的主视图控制器[B]。

我是OS X环境的新手,请帮我解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我知道这是一个古老的问题,但不过。我遇到了完全相同的问题,这就是我发现的:

    if NSApplication.shared().keyWindow?.contentView != self.view {
        self.view.window?.endSheet((self.view.window?.attachedSheet)!)
    }