2017-04-19 4 views
0

enter image description hereここで私はviewControllerにあり、IDはViewUSRControllerIDの別のviewControllerに行きたいと思います。私のコードはここにあります。私は、ユーザーがログインした後、目的は、移動するには:新しいビューコントローラを(プログラムで)押すと機能しませんか?どうして?

@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) 


     } 
    } 

出力は私がlogin successfulを印刷することができるということですが、何も押しがなされていないされています。テストのために私が交換さ:

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

で: self.present(CR、アニメーション:真)それで

が正常に動作します。しかし、それはなぜ動かないのですか?あなたのコードで

+4

のように見えるのですか? –

+0

私はそう思う、もう一度質問を参照してください。私はそれを更新しました。 –

+0

私の悪い、私はそれを持っている;) –

答えて

1

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

self.navigationController?あなたはUINavigationController方法pushViewControllerLoginViewControllerからこのメソッドプッシュViewUSRControllerを使用することができるよりもあなたのLoginViewControllerUINavigationControllerで埋め込まれている場合UIViewControllerのオプションのプロパティです。

ストーリーボードを使用している場合は、UINavigationControllerLoginViewControllerに埋め込むのが非常に簡単です。

ステップ: - ストーリーボードで

1.Select LoginViewController。 "に埋め込む" 2.xCpodeトップパネル "エディタ" 3.Select - >UINavigationController

それはあなたのコントローラがナビゲーションコントローラに埋め込まれ、この

enter image description here

関連する問題