2016-10-17 6 views
0

私はそれにセルが入ったテーブルを持っています。セル内のピッカービューがありデータをtableViewセルスウィフトに渡す

enter image description here

今、私は、私はピッカービュー

内のデータを表示することができますテーブルビューのセルに親コントローラからのデータ(オブジェクトの配列)を渡したいです
var foodServings:[FoodUnit]=[] 
func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath:NSIndexPath)->UITableViewCell{ 
    let cell = tableView.dequeueReusableCellWithIdentifier("recipeIngredientCell",forIndexPath: indexPath) as! ReceiptIngredientsViewCell 
    let row = indexPath.row 
    cell.ingredientName.text = foods[row].name 
    cell.ingredientText.text = foodQuantities[row] 

    // cell.foodServings = self.foodServings 

    return cell 

} 

私はデータをセルに送信できますが、これはうまくいきませんでした。

私はそれを少しclearifyしよう:私はTextViewに

例豆とテキストのセルのラベルにアクセスすることができます

cell.ingredientName.text = foods[row].name 
cell.ingredientText.text = foodQuantities[row] 

しかし:と

Thats how the table is constructed

ピッカービューを作成するために、私はピッカービューを作成できるように、各セルにデータの配列を送信する必要があります。

+0

実際に使用することができ、使用した方法が正しいです。あなたの問題は何ですか? –

+0

これを実行している場合、テーブルビューのセルにデータを渡す方法 –

答えて

0

これらを確認してください:

  • は「recipeIngredientCell」識別子を持つ細胞である、あなたのストーリーボードにあるのでしょうか?
  • foods配列はあなたのデータで満たされていますか?
  • foodQuantities配列はあなたのデータで満たされていますか?
  • tableView(_:numberOfRowsInSection :)メソッドを実装しましたか?この方法は、まず例えばfoods.count
+0

はいすべてがチェックされている問題は、オブジェクトの配列をセルに渡して、ピッカービューにデータを渡すことです。 –

0

、あなたの行数を返す必要があり、あなたはthisチュートリアルをチェックアウトすることができますについてUIPickerView

あなたのViewControllerにUIPickerViewDelegateUIPickerViewDataSourceを接続していませんか?その後

、あなたがそれらのデリゲートメソッドを実装していることを確認してください。

// The number of rows of data 
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 
    return foodServings.count 
} 

// The data to return for the row and component (column) that's being passed in 
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    return foodServings[row] 
} 

// Catpure the picker view selection 
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 
    // This method is triggered whenever the user makes a change to the picker selection. 
    // You can update your cell's UI here. For example: 
    let indexpath = NSIndexPath(row: , section:) 
    let cell = self.tableView(tableView, cellForRowAt: indexPath)  
    cell.yourTextField.text = foodServings[row] 
} 

あなたは私たちを提供しているものから、私はあなたのfoodServings配列が空であることを伝えることができるので、あなたは私にすべてのコードを表示してください可能性このクラスでは?

+0

おそらく私は少し不正確です。ピッカービューは機能しますが、ビューコントローラからオブジェクトを持つ配列をセルコントローラに渡す必要があります。後でピッカービューを作成するために使用することができます –

+0

@chrissychristancuvicその後、十分に正確に質問し、 1つのコードブロックを入れて、人々があなたの意図を推測できるようにする代わりに、あなたが現在持っているもの、あなたがしたいこと、そしてあなたの問題は何かを説明してください。 –

1

データを渡すだけの場合は、値をセルに渡すためにグローバル変数/コンストラクタを使用できます。

関連する問題