2016-09-01 6 views
0

私は数週間前にコーディングを開始しました。私のアプリケーションのFirebase.databaseにデータをロードしようとしています。しかし、それは、私がデータを別のフォルダ/名前( "A" & "B")にロード/保存し、後で私は1つのスクロールビューで2つの異なるスクロールビューでデータを取得できるようにすることです「A」のみを表示し、「B」のみを表示する。"IF"とUIPickerControllerを使用してFirebaseにデータをアップロード

私のコードは私にエラーを投げているわけではありませんが、何らかの理由でデータをアップロードしません。私はなぜそれが動作していないのか分からない。

非常に高く評価されています。 ありがとうコミュニティ!

コード着信!


///ピッカー今

// 2 items for the picker. 
var data = ["A", "B"] 

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
    // Column count: use one column. 
    return 1 
} 

func pickerView(pickerView: UIPickerView, 
       numberOfRowsInComponent component: Int) -> Int { 

    // Row count: rows equals array length. 
    return data.count 
} 

func pickerView(pickerView: UIPickerView, 
       titleForRow row: Int, 
          forComponent component: Int) -> String? { 

    // Return a string from the array for this row. 
    return data[row] 
} 

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    true 
} 

//Here I try to Upload the image that I picked in UIPickerView 

@IBAction func Upload(sender: UIButton){ 

    func simplePicker(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

     if component == 0 { 

      func Upload(){ 
      _ = UIImage.self 
      FIRDatabase.database().reference().childByAutoId().setValue("A") 
      }} 

     if component == 1 { 

      func Upload(){ 
      _ = UIImage.self 
      FIRDatabase.database().reference().childByAutoId().setValue("B") 
      }} 


    } 

} 
+0

各ブロックで 'FIRDatabase.database()。ref ...'の前に何かを印刷し、コンソールに何らかの出力があることを確認してください。なぜ 'func Upload()'ブロック内の関数を作成していますか? – Dravidian

+0

"CODE INCOMING !!!"のようなテキストは、その質問に必要です。 –

+0

@Dravidianありがとうございますが、残念ながらそれは動作していません。 「楽しいアップロード」を削除し、「FIR.Reference」の前に印刷を試しました。 まだ結果が得られていません。 – Leo

答えて

0

最終的に私は道を見つけることができました。私は私のために働く解決策を投稿します。多分それは将来誰かを助けるだろう。

乾杯、レオ

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

    if row == 0 {FIRDatabase.database().reference().childByAutoId().setValue("A")} 

    if row == 1 {FIRDatabase.database().reference().childByAutoId().setValue("B")} 
} 

P.S.問題は句でした。コンポーネントではありません。それは "行"です!

0

試してください: -

var valueToStore : String = "Placeholder" 

@IBAction func Upload(sender: UIButton){ 

     FIRDatabase.database().reference().childByAutoId().setValue(valueToStore) 
     //Storing the values the value you want to store .. 
} 


func simplePicker(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

    if component == 0 { 
     valueToStore = "A" 
     }else if component == 1 { 
     valueToStore = "B"} 

    //Setting the value you want to store in a global variable.. 
} 
+0

ありがとうございましたが、今では単にデータを「プレースホルダ」としてアップロードしています。 if文の中に "var"を入れてみます。 – Leo

+0

助けてくれない...あなたの 'simplePicker(pickerView:UIPickerView、didSelectRow行:Int、inComponentコンポーネント:Int)'が呼び出されなかったり、 'component 'の値が0または1でないためにアップロードが' Placeholder'となったのはなぜですか? – Dravidian

+0

..どうすればいいですか? :S – Leo

関連する問題