Как мне остановить мерцание ViewController при использовании подарок в Swift - PullRequest
0 голосов
/ 21 апреля 2020

Я очень новичок в Swift и у меня проблемы с созданием моего проекта. У меня есть два контроллера просмотра, один с кнопкой, которая при нажатии воспроизводит видео. Когда видео заканчивается, у меня есть код, который автоматически переносит его на новый контроллер View. но при этом вы можете (за миллисекунду) увидеть оригинальный контроллер представления. Я отключил все анимации, но все еще вижу это. Есть ли способ остановить это? Я неправильно строю проект? Как я уже сказал, я новичок в swift и немного разбираюсь в HTML и CSS, поэтому любая помощь будет высоко оценена.

import UIKit
import AVKit
import AVFoundation

class ViewController: UIViewController {

    let playerViewController = AVPlayerViewController()

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    @IBAction func playButton(_ sender: AnyObject) {
        let movieURL = Bundle.main.url(forResource: "video", withExtension: "mp4")!
        let player = AVPlayer(url: movieURL as URL)

        playerViewController.player = player
        NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: playerViewController.player?.currentItem)

        self.present(playerViewController, animated: false) {
            self.playerViewController.player!.play()
        }
    }


    @objc func playerDidFinishPlaying(note: NSNotification) {


        self.playerViewController.dismiss(animated: false)


        let storyBoard = UIStoryboard(name: "Main", bundle: nil)

        let secondVC = storyBoard.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController

        self.present(secondVC, animated:false)
    }
}

1 Ответ

0 голосов
/ 21 апреля 2020

Если вы имеете в виду, это не занимает полный экран. Начиная с iOS 13 презентация по умолчанию не является полноэкранной. Итак, вам нужно установить свойство modalPresentationStyle UIViewController с UIModalPresentationFullScreen.

вместо:

self.present(secondVC, animated:false)

use:

    secondVC.modalPresentationStyle = .fullScreen
    self.present(secondVC, animated:false)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...