Здравствуйте, друзья. У меня ошибка в передаче данных между двумя view controllers.
В "TheChoiseOfShipTableViewController" хранятся данные в классе:
let ships: [Ships] = [
Ships(name: "Сухогрузное судно общего назначения", image: "Сухогрузное судно общего назначения.png"),
Ships(name: "Морское рефрижераторное судно", image: "Морское рефрижераторное судно.png")
]
Их нужно передать в "CalculateViewController", там такая реализация:
var ships: Ships!
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let identifier = "Cell"
let cell = tableView.dequeueReusableCell(withIdentifier: identifier, for: indexPath) as! DetailsTableViewCell
//отображение информации в ячейках
switch indexPath.row {
case 0:
cell.keyLabel.text = "Название"
cell.valueLabel.text =ships.name
default:
cell.keyLabel.text = ""
cell.valueLabel.text = ""
}
return cell
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetails" {
if let destination = segue.destination as? TheChoiseOfShipTableViewController {
let indexPath = CalculateViewController.indexPathForSelectedRow!
destination.ships = self.ships[indexPath.row]
}
}
}
Ошибка что он ругается на ships..name, потому что она равно nil. Нужно передать данные, но у меня ошибка в indexPathForSelectedRow. Подскажите как грамотно нужно реализовать последний кусок кода для передачи данных.