Я пытаюсь отправить некоторые данные в ViewController
на другом раскадровке, но у меня возникают проблемы с получением правильного порядка.
У меня есть UITableView
, в котором есть список элементов при выбореЯ хочу передать ключ к ViewController
, который находится на другой раскадровке, встроенной в UITabBarContoller
, который был помещен в стек навигации.
Я могу переходить назад и вперед без проблем,проблема заключается в передаче данных в контроллер представления.
мой код представления таблицы в моей главной раскадровке
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "segue_details", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("Pepare for segue: \(String(describing: segue.identifier))")
if let barViewControllers = segue.destination as? UITabBarController ,
let nav = barViewControllers.viewControllers?[0] as? UINavigationController,
let destinationVC = nav.topViewController as? DetailsTabViewController {
let vehicle = tableData[tableView.indexPathForSelectedRow!.row] as! JSON
//THIS NEVER FIRES
print("\n\n\n\n\n\nPrepare call key: \(vehicle["CallKey"])\n\n\n\n\n")
destinationVC.callKey = vehicle["CallKey"].stringValue
}
}
Я переключил if let
barViewControllers *1016*и навигационные контроллеры пытаются получить правильный контроллер View, но я не могу заставить его работать.
Вот скриншот главного раскадровки UITableView
![enter image description here](https://i.stack.imgur.com/QdH78.png)
DetailsTabViewController код
class DetailsTabViewController: UITabBarController {
public var callKey : String = ""
override func viewDidLoad() {
super.viewDidLoad()
print("\n\n\n\n\n Details for callKey: \(callKey) \n\n\n\n\n")
title = callKey;
}
}
и соответствующий ему раскадровка
![enter image description here](https://i.stack.imgur.com/0aK52.png)