2017-04-19 2 views
0

enter image description here Hier bin ich in einem ViewController und ich möchte zu einem anderen ViewController mit der ID ViewUSRControllerID gehen hier ist mein Code. Das Ziel zu bewegen, nachdem ich der Benutzer angemeldet:Drücken der neuen Ansicht Controller (programmatisch) funktioniert nicht? Warum?

@IBAction func login_btn(_ sender: UIButton) { 
    if username_txt.text == "" || password_txt.text == "" { 

     //print("empty") 

     let alert = UIAlertController(title: "Error", message: "you must fill up both username and password", preferredStyle: UIAlertControllerStyle.alert) 
     alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.cancel, handler: nil)) 
     self.present(alert, animated: true, completion: nil) 

    }else if (username_txt.text! == "admin" && password_txt.text! == "Passw0rd"){ 

      print("login successful") 

     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let cr = storyboard.instantiateViewController(withIdentifier: "ViewUSRControllerID") 
     self.navigationController?.pushViewController(cr, animated: true) 


     } 
    } 

Die Ausgabe ist, dass ich die login successful drucken kann aber kein Stoßen gemacht wird. Aus Gründen der Prüfung ersetzt I:

self.navigationController?.pushViewController(cr, animated: true) 

mit: self.present (cr, animiert: true)

es funktioniert gut. Aber warum funktioniert das Drücken nicht?

+4

ist Ihr Controller eingebettet aussieht? –

+0

Ich denke es ist, bitte beziehen Sie sich auf die Frage erneut. Ich habe es aktualisiert. –

+0

mein Schlechter, ich habe es;) –

Antwort

1

In Ihrem Code self.navigationController?.pushViewController(cr, animated: true)

self.navigationController? ist optional Eigenschaft UIViewController wenn Ihr LoginViewController Mit UINavigationController eingebettet ist, als Sie UINavigationController Methode pushViewController und diese Methode Push ViewUSRController von LoginViewController verwenden können. Wenn Sie Storyboard verwenden, ist es sehr einfach, UINavigationController in LoginViewController einzubetten.

Schritte: -

1.Select LoginViewController in Storyboard. 2.xCpode obere Platte "Editor" 3.Select "Einbetten in" ->UINavigationController

Es ist wie dieser mit Navigationssteuerung

enter image description here

Verwandte Themen