2016-07-10 10 views
1

最初から教えてください、私はこの初期ビューコントローラを持っています。そこから私はホームビューコントローラーに行き、初期ビューコントローラーからプレゼンテーションを行い、最初のビューコントローラーでperformCloseを実行して閉じます。シートとして提示されたNSViewControllerを閉じます

今私は家のビューコントローラにいます。ここからは、ビューコントローラをシート[A]として提示しています。

ここで私はコントローラの中にいますが、ここからは[B]というビューコントローラを提示しています。

今私はBに入っています。今度は、私のホームビューコントローラをBビューコントローラから提示したいと思います。私は簡単にストーリーボードからのビューコントローラを取得し、presentViewControllerAsModalWindowを使用してそれを提示することによって行うことができます。しかし、問題は同時に、私はBを閉じたいと思っているが、私はそれをすることができなかった。

私はこのBコードを試しましたが、動作していないと思われます。

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

私はそれが全体のポイントではありません、BコントローラでdismissController(self)を行うことができます。私はそれを却下したくない、私はそれを完全に閉じてホームページを見せたいだけだ。または、他にも何か回避策がありますか?私がしたいのは、コントローラーBのホームビューコントローラーを閉じることです[B]。

私はOS X環境で非常に新しいです、これで助けてください。前もって感謝します。

答えて

0

これは古い質問ですが、それでも分かります。私はまったく同じ問題に遭遇し、これは私が見つけたものです:

if NSApplication.shared().keyWindow?.contentView != self.view { 
     self.view.window?.endSheet((self.view.window?.attachedSheet)!) 
    } 
関連する問題