swift从助手/另一个类中解除ViewController

时间:2017-05-14 08:58:50

标签: ios swift controller parameter-passing helper

当我尝试从查看器类中实例化的helperClass函数中删除视图时出现问题

public func set(playerController: AVPlayerViewController){
playerController?.dismiss(animated: true, completion: nil)
  

其视图不在窗口层次结构中!

如何正确传递控制器,以便助手类可以解除它?

Viewerclass:

helper.add(player: player)
helper.set(playerController: playerController)

3 个答案:

答案 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
}