Как обойти неполную ошибку - PullRequest
0 голосов
/ 24 февраля 2020

Я думаю, что столкнулся с ошибкой в ​​самом Xcode и надеялся найти какую-нибудь помощь в обходе этой проблемы. У меня есть видео с AVKit, и я хотел перейти к другому контроллеру представления, когда он закончил. Я обнаружил, что контроллер просмотра видео должен быть отключен до вызова segue, поэтому я добавил это. Конец видео совпадает с новым контроллером представления, поэтому я хочу, чтобы переключение было плавным, поэтому я анимировал: false для отклонения, вот что вызывает проблему. если для параметра animated установлено значение true, переход работает нормально, но если для него установлено значение false, переход не полностью завершается, видео отключается, и я вижу старый контроллер представления, переход вступает в силу только при нажатии на экран, и новый контроллер представления появляется. Вот этот код

animPlayer.dismiss(animated: false)

self.performSegue(withIdentifier: "BackpackSegue", sender: self)

Даже более странно, что код отлично работает на физическом ipad, поэтому это должна быть ошибка симулятора

Редактировать: Вот весь файл swift, я нов скажи мне, если тебе нужно что-то еще из проекта.

import UIKit
import AVKit

class FrontDoorOpen: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

    }
    }
    */
    override var prefersStatusBarHidden: Bool{
        return true
    }
    @IBOutlet weak var SegueImage: UIImageView!
    let animPlayer = AVPlayerViewController()

    @IBAction func DoorCloseSegue(_ sender: Any) {
        if let path = Bundle.main.path(forResource: "DoorClose", ofType: "avi", inDirectory: "SegueAnimations")
        {
            let SegueAnimation = AVPlayer(url: URL(fileURLWithPath: path))


            animPlayer.player = SegueAnimation
            animPlayer.showsPlaybackControls = false
            animPlayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
             NotificationCenter.default.addObserver(self, selector: #selector(self.finishVideo), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: nil)

            present(animPlayer, animated: false, completion:
        {
                SegueAnimation.play()
        })
        }
        SegueImage.isHidden = false
    }
    @objc func finishVideo()
    {
        animPlayer.dismiss(animated: false)
        // Simulator Pauses Here !!
        self.performSegue(withIdentifier: "DoorCloseSegue", sender: self)

    }
}

После еще нескольких экспериментов симулятор, кажется, делает паузу между dismiss и segue, переход происходит только с щелчком

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