是否可以在SKScene类中访问dismiss()?关闭是Apples UIKit提供的一种方法,这里是dismiss上Apple官方文档的链接。
class GameScene: SKScene {
}
尝试从IBAction示例中解雇:
@IBAction func dismissTapped(_ sender: Any) {
//figure out how to dismiss
}
Dismiss通常会这样使用-
dismiss(animated: true, completion: nil)
答案 0 :(得分:0)
dismiss
是UIviewController而非SKScene上的方法。但是,您的场景确实具有其包含视图的view
属性(这是一个SKView
,这是一个UIView
,这是一个UIResponder
)。您可以使用从next
继承的视图的UIResponder
方法来沿着响应者链移动,直到您点击第一个视图控制器(因为UIViewController
也是UIResponder
):>
extension UIResponder {
func firstParent<T: UIResponder>(ofType type: T.Type ) -> T? {
return next as? T ?? next.flatMap { $0.firstParent(ofType: type) }
}
}
//Use in your SKScene like so
view?.firstParent(ofType: UIViewController.self)?.dismiss(animated: true, completion: nil)