Передача данных в ячейку просмотра таблицы swift

#ios #swift #uitableview

#iOS #swift #uitableview

Вопрос:

У меня есть таблица с ячейкой в ней. Внутри ячейки есть представление выбора

введите описание изображения здесь

Теперь я хочу передать данные (массив объектов) из родительского контроллера в ячейку табличного представления, чтобы я мог отображать данные в представлении выбора

 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

}
 

Я надеялся, что смогу отправить данные в Ячейку, но это не сработало.

Я пытаюсь немного прояснить это:

Вот как строится таблица

с:

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

Я могу получить доступ к меткам ячеек например bean и тексту в textview

Но для заполнения представления сборщика мне нужно отправить массив данных в каждую ячейку, чтобы я мог заполнить представление сборщика.

Комментарии:

1. На самом деле вы можете, и способ, который вы использовали, правильный. В чем ваша проблема?

2. сделали ли вы это, если да, то как вы передаете данные в ячейку tableview

Ответ №1:

Если вы просто передаете данные, вы можете использовать глобальные переменные / конструктор для передачи значения в ячейку.

Ответ №2:

Пожалуйста, проверьте эти:

  • есть ли в вашей раскадровке ячейка с идентификатором recipeIngredientCell?
  • foods заполнен ли массив вашими данными?
  • foodQuantities заполнен ли массив вашими данными?
  • реализовали ли вы метод TableView(_:numberOfRowsInSection:)? Этот метод должен возвращать количество ваших строк, например foods.count

Комментарии:

1. Да, все было проверено, проблема заключается в передаче массива объектов в ячейку, которая затем может заполнить представление выбора

Ответ №3:

Прежде всего, вы можете ознакомиться с этим руководством о UIPickerView

Вы подключили UIPickerViewDelegate and UIPickerViewDataSource к вашему ViewController?

После этого убедитесь, что вы внедрили эти методы делегирования:

  // 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 массив пуст, поэтому не могли бы вы, пожалуйста, показать мне все коды в этом классе?

Комментарии:

1. возможно, я был немного неточен. представление сборщика работает, но мне нужно передать массив с объектами из viewcontroller в контроллер ячейки, который я могу позже использовать для заполнения представления сборщика

2. @chrissychristancuvic Тогда, пожалуйста, будьте достаточно точны и отредактируйте свой вопрос, попробуйте добавить больше кодов, объясните, что у вас есть прямо сейчас, что вы хотите сделать и в чем ваша проблема, вместо того, чтобы помещать один блок кода и позволять людям угадывать ваши намерения.