2017-07-12 5 views
0

私は、複数のView Controllerを持つユーザー登録フォームを設定しています。ユーザーがユーザー名を入力してボタンをクリックすると、電子メール情報を持つ次のView Controllerに接続し、ボタンを押すと次のビューに移動します。しかし、私が最後の見方をするとき、私はすべての情報を私に利用可能にしたいと思っています。私はそれをユーザーに表示したくないのですが、まとめてデータベースに送信したいと思っています。テキストフィールド変数を公開せずに、この情報を配列に保存する良い方法はありますか?私はviewcontrollersを移動すると、テキストフィールドからの値を保存します

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     let DestViewController : AddComDescriptionVC = segue.destination as! AddComDescriptionVC 

     DestViewController.comNameLblTxt = comNameTxt.text! 

    } 

たとえば、次のビューにデータを渡します。私はやったようにラベルにそれを保存したくない。私はちょうどそのデータを渡したい。

答えて

0

それぞれのビューコントローラに変数を設定し、それをデータベースに送信する必要があるポイントまで渡すことができます。この変数(プロパティ)の値を設定するだけであるため、ユーザーは画面から変数を表示しません。例えば、からUserDefaultにそれを保存し、あなただけの最初と最後にはそれが必要な場合はセグエ

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if let destinationViewController = segue.destination as? YourViewController { 

     destinationViewController.texts = self.texts 
     //... 
    } 
} 

かかわらず、データを渡すために、そして真ん中にあるすべてのビューコントローラかかわらず、それを渡したくありません最初のビューコントローラ、およびあなたは単にあなたがサンプルコードを提供してくださいすることができ、次のコード

UserDefaults.standard.set(yourTextField.text!, forKey: "savedText") 

UserDefaults.standard.string(forKey: "savedText") 
+0

を使用し、保存し、ユーザーのデフォルトから文字列を読み取るには、データベース

にそれを送りたい時はいつでもその値を読んで、すみません、私は非常に迅速です。 – codeislife

+0

@codeislife更新されたコード。あなたのコードでは、目的のビューコントローラにデスティネーションビューコントローラをキャストしています。ただし、キャスティングの例外が発生する可能性があります。代わりに、 'if let'を使って最初に目的のビューコントローラがあなたが望むものであるかどうかをテストし、データを渡します。 –

+0

準備のための準備機能の中にuserdefaultsを保存する必要がありますか? – codeislife

関連する問題