#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 Тогда, пожалуйста, будьте достаточно точны и отредактируйте свой вопрос, попробуйте добавить больше кодов, объясните, что у вас есть прямо сейчас, что вы хотите сделать и в чем ваша проблема, вместо того, чтобы помещать один блок кода и позволять людям угадывать ваши намерения.