У меня есть массив, который выглядит так:
[Category(title: "First Category", question: [
Question(
title: "1 Question",
article: "1 Arcticle",
anwser: "Answer",
link: "google.com",
favorite: false,
possibleAnswers: ["First", "Second", "Third", "Fourth"],
rightAnswerNumber: 2), etc..]),
etc..]
Я не понимаю, как извлечь данные в следующем ViewController. Вот у меня код В родительском:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == ListViewController.className() {
let indexPath = tableView.indexPathForSelectedRow
let destinationVC = segue.destination as? ListViewController
var data: Category
if isFiltering() {
data = filteredData[indexPath!.row]
} else {
data = dataSource[indexPath!.row]
}
destinationVC?.passedData = data
}
}
У ребенка:
var passedData: Category?
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: ListTableViewCell.identifier(), for: indexPath) as! ListTableViewCell
cell.passedData = passedData![indexPath.row][indexPath.row] //Here
cell.selectionStyle = .gray
return cell
}
Мне нужно, чтобы cell.passedData принимал массив вопросов в категории, зависящей от indexPath, но не знаю, как это сделать.
Я думал об извлечении массива из категории с помощью цикла for, но не понимал, как это сделать.
Я передаю точную единственную категорию, потому что мне нужно отображать заголовок категории и иметь массив вопросов для отображения в TableView. В первом VC у меня есть массив категорий, которые загружают те же заголовки в TableView и зависят от выбора передачи данных категории (заголовок, массив вопросов) в следующем VC.
cell.passedData
типа Question
или String
?
cell.passedData - это вопрос
Поскольку passedData
контроллера дочернего представления имеет тип Category
, вам просто нужно заменить
cell.passedData = passedData![indexPath.row][indexPath.row] //Here
с участием
cell.passedData = passedData!.question[indexPath.row]
в контроллере дочернего представления
Спасибо! Такая простая, моя вина, что я этого не осознавала!
какой тип
cell.passedData
?