Вам нужен только один VC для отображения множества ваших видео.
Допустим, у вас есть такая модель:
struct Video {
let videoLink: URL
let description: String
}
И ваш контроллер табличного представления использует массив Video
s называется videos
в качестве источника данных.
В вашем методе didSelectRowAt
вы можете получить выбранное видео и выполнить передачу с выбранным видео в качестве отправителя:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let videoSelected = videos[indexPath.row]
performSegue(withIdentifier: "showVideo", sender: videoSelected)
}
Теперь создайте один VideoViewController.swift
файл и сделайте что-то вроде этого:
class VideoViewController: UIViewController {
var video: Video!
// write code for this VC to display not a specific video, but "self.video"
// For example, instead of setting the label's text to a hardcoded description, set it to "self.video.description"
}
Затем вернитесь к контроллеру табличного представления и переопределите prepareForSegue
:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? VideoViewController {
vc.video = sender as! Video
}
}