2017-02-26 3 views
0

Ich habe eine UIAlert erzeugt und möchte diese verlinken, um einen neuen viewController zu öffnen. Ich habe neue Dateien für jeden der verschiedenen Viewcontroller, die ich habe, hinzugefügt und die Klasse verlinkt.UIAlertController um zu neuen ViewController zu gelangen

der Code ich habe, ist ..

@IBAction func CorrectButton(_ sender: UIButton) { 

    let refreshAlert = UIAlertController(title: "Correct Answer", message: "Congratulations", preferredStyle: UIAlertControllerStyle.alert) 

    let vc = ThirdViewController() 

    refreshAlert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action: UIAlertAction!) in self.present(vc, animated: true, completion: nil) 

    })) 

    present(refreshAlert, animated: true, completion: nil) 
} 

im Grunde, wenn der Benutzer auf der richtigen Antwort klickt der Alarm öffnet sich und dann, wenn der Benutzer klickt auf „OK“ i ein neuen Viewcontroller mit Pop-up will der nächste Teil der App. Alles, was gerade geschieht, ist, wenn ich in der Warnmeldung auf "OK" klicke, wird der Bildschirm schwarz?

jede Hilfe sehr dankbar ..

Antwort

0

Instatise der Viewcontroller Sie bei der Fertigstellung Handler des okButton gehen wollen würde.

Dies ist ein Beispiel, das ich verwende. Es ist eine Klassenfunktion, die ich von überall aufrufen kann, ich habe den View-Controller hart codiert, den ich zu dem Teil eines Navigationscontrollers gehen möchte, ändern Sie einfach "LogInNavCont" in die Storyboard-ID Ihres Viewcontrollers und UINavigationController zu UIViewController, wenn es a Stand alone viewController.

, wenn Sie es als eine Klasse-Funktion nicht verwenden möchten, ersetzen Sie einfach className.present

class func createAlertAndGoToLogin(errorTitle: String, errorMessage: String, className: UIViewController) { 
    let alert = UIAlertController(title: errorTitle, message: errorMessage, preferredStyle: UIAlertControllerStyle.alert) 
    alert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action) in 

     // go back to the login view controller 
     // go back through the navigation controller 

      let vc = className.storyboard!.instantiateViewController(withIdentifier: "LogInNavCont") as! UINavigationController 
      className.present(vc, animated: false, completion: nil) 


    })) 
    className.present(alert, animated: true, completion: nil) 
} 
self.present
Verwandte Themen