2016-07-10 11 views
1

Lassen Sie mich von Anfang an sagen, ich habe diese erste Ansicht Controller. Von dem ich zum Home View Controller gehe, indem ich ihn vom ersten View Controller präsentiere, und ich führe performClose auf dem ersten View Controller aus, so dass es geschlossen wird.Schließen NSViewController, die als Blatt dargestellt

Jetzt bin ich im Home View Controller, von hier präsentiere ich einen View Controller als Blatt [A].

Jetzt bin ich in einem Controller, von hier präsentiere ich einen View-Controller als Blatt [B].

Jetzt bin ich in B. Jetzt möchte ich meine Home-View-Controller von B anzeigen Controller vorstellen. Ich kann das leicht machen, indem ich den View-Controller aus dem Storyboard heraushole und ihn mit presentViewControllerAsModalWindow präsentiere. Aber das Problem ist, dass ich gleichzeitig B schließen möchte. Aber ich konnte es nicht tun.

Ich habe diesen B [Code unten] ausprobiert, es scheint nicht zu funktionieren, wenn ich die Aktion durchführe, erzeugt der Mac einen Ting-Ton.

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

ich dismissController(self) in B-Controller kann, das ist nicht der springende Punkt. Ich möchte es nicht ablehnen, ich möchte es komplett schließen und die Startseite zeigen. Oder gibt es noch andere Arbeiten? Alles, was ich tun möchte, ist, dass ich den Home View Controller von Controller B zeige, indem ich ihn schließe [B].

Ich bin sehr neu in OS X Umgebung, Bitte helfen Sie mir damit. Danke im Voraus.

Antwort

0

Ich weiß, das ist eine alte Frage, aber trotzdem. Ich stieß genau auf dasselbe Problem und das habe ich gefunden:

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