当我尝试从查看器类中实例化的helperClass函数中删除视图时出现问题
public func set(playerController: AVPlayerViewController){
playerController?.dismiss(animated: true, completion: nil)
其视图不在窗口层次结构中!
如何正确传递控制器,以便助手类可以解除它?
Viewerclass:
helper.add(player: player)
helper.set(playerController: playerController)
答案 0 :(得分:3)
您应该能够从呈现的视图控制器中执行dismiss(animated: true, completion: nil)
,因为Apple库会处理演示者和呈现的视图控制器的解雇。无需传递参考
答案 1 :(得分:1)
你也可以给予回调 像这样的东西:
helper.add(player: player) {
self.dismiss(animated: true, completion: nil)
}
Player:
public func set(playerController: AVPlayerViewController, completion: (Void)->Void){
completion()
}
答案 2 :(得分:0)
从你的帮助类中尝试这样: -
AppDelegate.sharedInstance().window?.topMostController()?.dismiss(animated: true, completion: nil)
在AppDelegate文件中添加此功能: -
class func sharedInstance() -> AppDelegate{
return UIApplication.shared.delegate as! AppDelegate
}