2017-04-14 9 views
-1

2つのナビゲーションコントローラ間でデータを渡したいと思います。私はsegueメソッドを実行することでこれを行うことができます。しかし、私は問題があります。私の最初のナビゲーションコントロールには、3つのテキストフィールドとボタンがあります。ボタンをクリックすると、他のナビゲーションコントローラを押します。テキストフィールドが満たされたときに、どうすれば他のナビゲーションコントロールにプッシュすることができますか?テキストフィールドが空でも他のncを押してもボタンをクリックします。あなたはタンクク。2 ViewControllerフォーム間でデータを渡す場合Swift 3.1

答えて

0

shouldPerformSegue(withIdentifier:sender:)を実装し、セグを実行できるときのみtrueを返す必要があります。そうでない場合はfalseを返します。

shouldPerformSegue()は、セグが実行される直前に呼び出されます。

+0

ありがとう、これはシンプルで良い方法:) – Mayday

0

次のデリゲートメソッドを実装し

、フォーム内のテキストフィールドのためのアウトレットを追加出口は textfield1として命名されていると言う、 textfield2textfield3
func textFieldDidEndEditing(_ textField: UITextField) { 

    if (textField == textfield3) { 
     if self.allTextFieldsAreFilled() { //Check if all textfields are filled 
      //Add your push code here 
      self.navigationController?.pushViewController(viewController, animated: true) 
     } 
    } 
} 

この確認機能

func allTextFieldsAreFilled() -> Bool { 

    if (textfield1.text?.characters.count > 0 && textfield2.text?.characters.count > 0 && textfield3.text?.characters.count > 0) { 

     return true 
    } 
    return false 
} 

は必ず設定してください追加します。 delegateすべてのテキストフィールド

関連する問題