如果之前的视图控制器不是根视图控制器,也没有导航控制器,你可以通过以下步骤从SKScene访问它:
guard let window = UIApplication.shared.windows.first,
let rootViewController = window.rootViewController else {
return
}
var currentViewController = rootViewController
while let presentedViewController = currentViewController.presentedViewController {
currentViewController = presentedViewController
}
if let previousViewController = currentViewController.presentingViewController {
// 在这里可以访问到之前的视图控制器
}
if let scene = self.scene as? YourSKSceneClass {
scene.previousViewController = previousViewController
}
在上述代码中,YourSKSceneClass
是你的SKScene的类名,previousViewController
是你在SKScene中定义的一个属性,用于保存之前的视图控制器。
这样,你就可以在SKScene中访问之前的视图控制器了。请注意,这种方法仅适用于之前的视图控制器不是根视图控制器且没有导航控制器的情况。如果有导航控制器,你可以使用导航控制器的相关方法来获取之前的视图控制器。
领取专属 10元无门槛券
手把手带您无忧上云