4

按下按鈕,我呈現AVPlayerViewController:呈現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() 
    } 
} 

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