У меня есть базовый класс:
class BaseViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UITableViewDataSourcePrefetching {
var posts = [Post]()
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "PostTableViewCell", for: indexPath) as? PostTableViewCell else {
fatalError("The dequeued cell is not an instance of PostTableViewCell.")
}
let post = posts[indexPath.row]
cell.parentViewController = self
cell.initialize(post: post)
return cell
}
}
, который я использую в качестве подкласса:
class FeedViewController: BaseViewController {
@IBOutlet weak var tableView: UITableView!
// Other stuff
}
Я использую базовый класс для обработки всех функций табличного представления (которые я повторно использую в многие части моего приложения).
В моей раскадровке у меня настроен дизайн контроллера для FeedViewController
с табличным представлением. Однако я не уверен, как передать розетку раскадровки, которая в данный момент подключена к FeedViewController
, к моему базовому контроллеру, чтобы базовый контроллер обрабатывал все логи представления таблицы c. Как бы я это сделал?