AVPlayerViewController StatusBar View Migrates to UI

On click the button I present the AVPlayerViewController:

func playVideoPressed(sender: UIButton){
  let videoURL = NSURL(string: "someUrl")
  let player = AVPlayer(URL: videoURL!)
  let playerViewController = AVPlayerViewController()
  playerViewController.player = player
  self.presentViewController(playerViewController, animated: true) {
    playerViewController.player!.play()
  }
}

This AVPlayerViewController status bar makes the user interface of the current view controller. Is it possible to hide the status bar from this call to "presentViewController"?

I tried to enable

playerViewController.prefersStatusBarHidden()

but the player continues to display the status bar.

thank

+4
source share
2 answers

In the end, I just created a new AVPlayerViewController, which I go to the click of a button, and inside this controller I added the code:

override func prefersStatusBarHidden() -> Bool {
    return true
}

, , , , .

0

:

class MyAVPlayerViewController: AVPlayerViewController {
var presenting: Bool = true

override var prefersStatusBarHidden: Bool {
    if presenting {
        return false
    } else {
        return super.prefersStatusBarHidden
    }
}

override var childViewControllerForStatusBarHidden: UIViewController? {
    if presenting {
        return nil
    } else {
        return super.childViewControllerForStatusBarHidden
    }
}

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    presenting = false
    setNeedsStatusBarAppearanceUpdate()
}
}
0

Source: https://habr.com/ru/post/1652173/


All Articles