2017-08-22 26 views
-1

私は2つのView Controllerを持っており、ボタンを使って1つのView Controllerから次のView Controllerに番号を渡したいと思います。しかし、その番号を渡すと、その番号が次の番号に追加され、ボタンが押されるたびに追加されます。これまでのところ文字列を渡すだけで動作しますが、その文字列を数値に変換してからその数値を追加する方法はわかりません。文字列はFirebaseに格納されています。追加する番号を変更できるようにしたいからです。私が追加されたい番号のボタンView Controllerでの数値の受け渡し

@IBAction func verifyButton(_ sender: Any) { 

    print("Button Clicked") 

    let ref3 = Database.database().reference() 
    ref3.child("Pay/Ad001").queryOrderedByKey().observeSingleEvent(of: .value, with: { (snapshot) in 

    }) 

    let myVC = storyboard?.instantiateViewController(withIdentifier: "ProfileViewController") as! ProfileViewController  

    myVC.stringPassed = LabelOne.text! 

    navigationController?.pushViewController(myVC, animated: true) 
    UserDefaults.standard.setValue(LabelOne.text!, forKey: "stringPassed") 
} 

第二ビューコントローラと

ビューコントローラ:ここ

は私のコードです

override func viewDidLoad() { 
    super.viewDidLoad() 

    //pass number here and add 
    totalEarned.text = stringPassed 
    totalEarned!.text=UserDefaults.standard.string(forKey: "stringPassed") 
+4

'UserDefaults'は、View Controller間でデータを渡す全く別の方法です。 – vadian

+0

[View Controller間でデータを渡す]可能な複製(https://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) –

答えて

5

が、私は把握することはできませんその文字列を数値に変換してその数値を追加する方法

質問全体が悪臭です。 MVC(model-view-controller)に違反しています。

番号を保存して番号としてください。番号はモデルデータです。あなたはそれに後で何かを追加するという理由から、数字にする必要があります。

数字をインターフェイスに表示する場合は、表示は表示で、おそらく文字列が必要です。そのため、ビューコントローラは、表示する内容を表示するときに表示する目的でのみ、文字列に変換します。

+0

私は文字列ではなく数値として最初に格納しようとしましたが、ラベルを更新しようとすると数字を保存できないと言われます。文字列でなければなりません。あなたのお返事ありがとうございました。 –

+0

正直、それはまさに私が言ったことです。ラベルは数字を「保存」しません。それは何も保存しません。ラベルはストレージとして使用しないでください。ラベル_displays_。文字列を表示する必要があるので、ラベルのテキストを設定するために数値を文字列に変換します。 – matt

+0

それは私が言うことをしようとしている。私は1番目のビューコントローラ上の数値としてそれを持っているが、それを文字列として渡すのではなく、数値として2番目のビューコントローラに渡すにはどうすればよいですか? –

関連する問題