Я хочу передать данные в контроллер представления root, который равен ViewController
после закрытия предыдущего, я решил использовать делегирование для решения этой проблемы следующим образом: Схема:
ViewController -> SearchViewController
SearchViewController
создает данные и отклоняет
class ViewController: UIViewController, IsAbleToReceiveData {
@IBAction func addButton_touchUpInside(_ sender: UIButton) {
performSegue(withIdentifier: "gotoSearchViewController", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "gotoSearchViewController" {
let vc2 = SearchViewController()
vc2.delegate = self
}
}
func passData(city: cityObject) {
print(city.cityName)
}
}
Протокол объявлен:
protocol IsAbleToReceiveData: class {
func passData(city : cityObject)
}
В SearchViewController
у меня есть:
weak var delegate: IsAbleToReceiveData?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let citySelected: cities?
citySelected = self.citiesQueried[indexPath.row]
RequestAPI.convertData(city: citySelected!) { (city) in
self.delegate?.passData(city: city)
}
dismiss(animated: true, completion: nil)
}
Когда я пытаюсь напечатать данные в функции в ViewController
, ничего не печатается, хотя в SearchViewController
convertData метод возвращает cityObject. Как я могу передать данные в ViewController
после увольнения?