Вы должны реализовать tableVew(_:willSelectRowAt:)
метод UITableViewDelegate
в вашем viewController и установить для свойства коррекции значение выбранной строки.
class YourSourceViewController: UITableViewDelegate{
var correction: Correction!
func tableView(_ tabelView: UITableView, willSelecRowAt indexPath: IndexPath) -> IndexPath?{
correction = correctionList[indexPath.row]
return indexPath
}
func prepare(for segue: UIStoryBoardSegue, sender: Any?){
//passing data to RequestCorrectionViewController.
//And also you don't need to check if indexPath is nil.
//Because this block will called only any row of tableView is selected.
}
}
Также обратите внимание, что вы можете сделать то же самое в методе tableView(_:didSelectRowAt:)
, но этот метод работает после выполнения сегментов и вызывает проблему, с которой вы тоже столкнулись.
Редактировать
Если вы считаете, что использование метода willSelectRowAt:
является неправильным использованием, вы можете установить в качестве источника вашей программы viewController (вместо ячейки шаблона) и установить идентификатор в Storyboard и вызвать его программно. как сказал @ vadian
func tableView(_ tabelView: UITableView, didSelecRowAt indexPath: IndexPath){
correction = correctionList[indexPath.row]
performSegue(withIdentifier "mySegueIdentifier", sender: self)
}