私はスウィフトコードでintのピッカービューを持っています。それは数字と呼ばれる配列に1から7の数字を持っています。 didSelectRow
機能の中にnumbers[row]
を印刷するように頼むと、正しい番号が印刷されます。しかし、私の提出タップ関数では、それは0だけを出力します。これはviewWillAppear
でも同様でした。ピッカービュー配列の行は0だけ表示されます
私は基本的に行を変数として使用して、あるコードを遅延させるためにintとして使うことができます。
let numbers = [1,2,3,4,5,6,7]
var days = Int()
override func viewDidLoad() {
super.viewDidLoad()
self.pickerView.delegate = self
self.pickerView.dataSource = self
}
override func viewWillAppear(_ animated: Bool) {
print(days)
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return String(numbers[row])
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return numbers.count
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
var days = numbers[row]
print(days)
}
@IBAction func submitTapped(_ sender: Any) {
databaseRef.child("numbers").child(self.TextField.text!).setValue(["thename" : UserDefaults.standard.value(forKey: "nametext")])
print(days)
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(days) , execute: {
databaseRef.child("numbers/\(self.TextField.text!)").removeValue()
})
送信タップ関数で常にゼロを返す理由を知っている人はいますか?
これらのソリューションは私が単純にvarを削除して動作します。 –