gpt4 book ai didi

ios - 如何: Give SKScene access to dismiss() UIKit method

转载 作者:行者123 更新时间:2023-11-29 05:54:22 27 4
gpt4 key购买 nike

是否可以在SKScene类中访问dismiss()? Dismiss 是苹果 UIKit 提供的一种方法,这里是苹果官方文档的链接 dismiss .

class GameScene: SKScene {

}

尝试从 IBAction 示例中解雇:

    @IBAction func dismissTapped(_ sender: Any) {
//figure out how to dismiss
}

Dismiss 通常会这样使用 -

dismiss(animated: true, completion: nil)

最佳答案

dismiss 是 UIviewController 上的方法,而不是 SKScene 上的方法。但是,您的场景确实有一个 view 属性,它是其包含 View (这是一个 SKView,这是一个 UIView,这是一个 UIResponder)。您可以使用从 UIResponder 继承的 View 的 next 方法沿着响应者链向上走,直到到达第一个 View Controller (因为 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)

关于ios - 如何: Give SKScene access to dismiss() UIKit method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55302452/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com