Мне было бы интересно получить некоторые отзывы об этом ответе, так как я думаю, что это пример того, как я думаю о системе iOS неправильно.В конце концов я понял, что пытался поместить код контроллера представления в собственное представление.Просмотр кода контроллера, являющегося кодом для запуска AVPlayerViewController.Скорее я должен поместить эту логику в мой контроллер представления.
То, что я сделал, работает, используя метод делегата collectionView didSelectItemAt indexPath: IndexPath внутри контроллера представления, где логика контроллера представления для представления коллекции хранится следующим образом:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if collectionView == self.collectionView {
let post = posts[indexPath.row]
if post.isVideo == true {
self.performSegue(withIdentifier: "playVideo", sender: nil)
} else {
print("is image. might go full screen one day here")
}
}
Этоработает, и я считаю, что лучше, чем написать собственный аспект представления, запустить AVPlayerViewController.Но также возможно, что оба подхода работают - я действительно недостаточно знаю о разработке iOS, чтобы сделать этот вызов.Любые комментарии приветствуются.