2016-06-29 20 views
1

Ich arbeite an einer OSX-App in Swift, die programmgesteuert auf eine Schaltfläche klickt, um einen View-Controller zu starten. Ich möchte den initialen View-Controller programmatisch verwerfen.Wie kann ich den übergeordneten View-Controller nach dem Start des zweiten View-Controllers schließen?

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. 
     } 
    } 
} 
+0

** 1.) ** Warum müssen Sie den Eltern 'ViewController' ablehnen? ** 2.) ** Was hast du bisher versucht? Wie sieht dein Code aus? – ZGski

+0

Ich muss den übergeordneten Viewcontroller verwerfen, weil er nach dem Start des zweiten Controllers keinen Zweck erfüllt. 2) Ich habe versucht, self.dismisscontroller (self) und verschiedene Kombinationen von diesem. –

+0

Ich glaube nicht, dass Sie _programmatisch auf einen Button_ klicken müssen, um zu einem neuen 'ViewController' zu wechseln. Das Wechseln zu einer neuen VC kann ohne die Verwendung einer Schaltfläche erfolgen. Außerdem bin ich mir ziemlich sicher, dass Sie eine VC nicht ablehnen müssen, wenn Sie auf eine neue wechseln. – ZGski

Antwort

1

Es sieht so aus, als würde Ihr Button nicht wirklich dismissViewController() ausführen. Sie nennen diese Methode tatsächlich in Ihrem viewDidLoad(). Es ist auch erwähnenswert, dass Sie stattdessen self.view.window?.close() ausprobieren möchten.

+0

Das hat perfekt funktioniert. Vielen Dank :) –