У меня есть приложение, которое содержит информацию о барах. listViewController содержит каждый объект Bar в ячейке (имя, адрес, телефон и т. д.).
Когда я нажимаю на ячейку, я перехожу к infoViewController, который отображает данные, но по какой-то причине он не работает
это код в TableView -
func tableView(_ tableView: UITableView, didSelectRowAt
indexPath: IndexPath) {
let barSelected = bars[indexPath.row]
let infoVC = storyboard?.instantiateViewController(withIdentifier: "infoViewController") as! InfoViewController
chooseBarDelegate?.chooseBar(barChosen: barSelected)
present(infoVC, animated: true, completion: nil)
класс соответствует созданному мною протоколу -
import Foundation
protocol barInfoDelegate {
func chooseBar(barChosen:Bar)
}
и ятакже создал экземпляр делегата -
var chooseBarDelegate:barInfoDelegate?
в detailViewController. Я создал переменную var с необязательным объектом -
var infoBar:Bar?
и добавил расширение -
extension InfoViewController: barInfoDelegate {
func chooseBar(barChosen: Bar) {
infoBar = barChosen
}
}
* 1021. * Я также установил делегата на себя в infoViewController
listViewController.chooseBarDelegate? = self
Приложение не падает, но информация не передается. Когда я проверяю отладчик с помощью объекта печати, я вижу, что «barSelected» содержит объект, но infoBar равен nil.
Что я делаю не так?
Спасибо!