Это нормально подключено:
protocol MoveToAnotherVC: AnyObject {
func moving(string: String)
}
class StateListVC: UIViewController, MoveToAnotherVC {
override func viewDidLoad() {
super.viewDidLoad()
let vc = self.storyboard?.instantiateViewController(withIdentifier: "PlaceVC") as! PlaceVC
vc.delegate = self
}
func moving(string: String) {
print(string)
}
}
class PlaceVC: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableViewPlace: UITableView!
weak var delegate: MoveToAnotherVC?
var arrPlace = ["Place1", "Place2"]
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrPlace.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = arrPlace[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
delegate?.moving(string: "test")
}
}
Я сделал протокол протоколом класса, переместил создание экземпляра контроллера представления в viewDidLoad
, удалил некоторую (что я считаю) постороннюю распаковку и удалил ваш протокол/ делегировать шаблон до основ.Это работает.Я включил бы это в ваш проект и добавил бы то, что вам нужно, по частям, пока он не сломается, потому что ваша проблема выходит за рамки этого.Я подозреваю, что это может быть связано с тем, что вы не включили в свой вопрос, но это отвечает на ваш вопрос о том, как настроить шаблон протокола / делегата.