2016-09-20 8 views
0

ボタンに条件を追加したい。ボタンに条件を追加する(スウィフト)

したがって、条件が真であれば、別のビューがセグを通って開きます!

それ以外の場合は何も起こりません。警告が表示されます。

2つのビューは、ナビゲーションコントローラによってリンクされています。

@IBAction func AddButton(_ sender: AnyObject) { 

    if FIRAuth.auth()?.currentUser != nil { 
     self.performSegue(withIdentifier: "AddDevice", sender: nil) 

    } 
    else { 

     let alert = UIAlertController(title: "Sorry", message:"You have to Register First", preferredStyle: .alert) 
     alert.addAction(UIAlertAction(title: "Ok", style: .default) { _ in }) 
     self.present(alert, animated: true){} 
    } 

} 

ここに私が試したことがあります!しかし、それは私が望む結果を与えていませんでした。

+0

コードに問題がありますか?私はそれがうまくいくと思います。 –

+0

私は 'self.shouldPerformSegue'のインスタントを使っていたようです。 – Mariah

+0

それがうまくいかなかったのです!私は急いでやっていた、私は気づいていない。 – Mariah

答えて

1

@IBAction func AddButton(_ sender: AnyObject) { 
FIRAuth.auth()?.addAuthStateDidChangeListener { auth, user in 
    if let user = user { 
    self.performSegue(withIdentifier: "AddDevice", sender: nil) 
    } 
    else { 
    let alert = UIAlertController(title: "Sorry", message:"You have to Register First", preferredStyle: .alert) 
    alert.addAction(UIAlertAction(title: "Ok", style: .default) { _ in }) 
    self.present(alert, animated: true){} 
    } 
} 
} 
+0

他のビューが開いています!条件が真でない場合でも! – Mariah

+0

よろしくお願いします。セグを追加ボタンに接続しましたか? – Do2

+0

ボタンからコントローラを表示するのではなく、1つのView Controllerから別のView ControllerにSegueを接続して接続してください。あなたのFIRAuth.auth()?currentUser!= nilをテスト文字列に置き換え、空でない場合はsegueを実行します。そうでない場合はチェックしません。 – Do2

関連する問題