4

를 만든다 :은 내가 AVPlayerViewController을 제시하고있어 버튼을 누를에 UI 점프

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() 
    } 
} 

이 AVPlayerViewController의 상태 표시 줄에 현재보기 컨트롤러 점프의 UI를합니다. 나는이 "presentViewController 호출 내에서 상태 표시 줄을 숨길 수 있습니까?

내가

playerViewController.prefersStatusBarHidden() 

포함 해봤지만 플레이어가 상태 표시 줄을 표시하고 있습니다.

감사

+0

감사 @NSNoob,하지만 내 현재의 ViewController (하나에서 작동 곳 버튼을 제시 눌러 – robinyapockets

답변

0

을 나는 결국 간단히 새로운 AVPlayerViewController를 생성하여 버튼 누름에서부터 시작하여 해당 컨트롤러 내에서 코드를 추가했습니다.

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

비디오를 보는 것만으로도 코드가 더 좋아 보이지만 원활하게 작동합니다.

내 솔루션
+0

당신이 avplayerviewcontroller을 서브 클래스 및이 방법을 추가하거나 추가했다는 것을 말하고있다. avplayerviewcontroller를 표시 한보기 컨트롤러의이? –

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() 
} 
}