Переход на разные контроллеры из одной ячейки (подробный вид и avcontroller) - PullRequest
1 голос
/ 19 октября 2019

При касании ячейки, если есть видео, я хочу показать только видео (в avPlayerViewController), если нет видео, оно выполняет переход к подробному просмотруw

Я пробовал это:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {


    let post = postArray[indexPath.item]
    let controller = PostDetailViewController.fromStoryboard(post: post)
    self.navigationController?.pushViewController(controller, animated: true)


    guard let videoURL = URL(string: post.videoLink)  else {
        return
            }

    let avPlayer = AVPlayer(url: videoURL)
    let avController = AVPlayerViewController()
    avController.player = avPlayer

    present(avController, animated: true) {
        avPlayer.play()
    }

}

Воспроизводит видео, если оно есть (из Firebase), но также открывает подробный вид. Поэтому я хотел, чтобы в ячейке открывалось только видео или только подробный просмотр

1 Ответ

1 голос
/ 19 октября 2019

Структурируйте его так, чтобы при отсутствии post.videoLink он выдвигал PostDetailViewController, в противном случае он будет воспроизводить видео:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    guard let videoURL = URL(string: post.videoLink) else {
        //If there is no URL, then this else condition will be called. Otherwise, the code below the guard statement will be called, and the video player will appear.
        let post = postArray[indexPath.item]
        let controller = PostDetailViewController.fromStoryboard(post: post)
        self.navigationController?.pushViewController(controller, animated: true)
        return
    }

    let avPlayer = AVPlayer(url: videoURL)
    let avController = AVPlayerViewController()
    avController.player = avPlayer

    present(avController, animated: true) {
        avPlayer.play()
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...