我有一个使用UIViewControllerRepresentable
实现GKGameCenterViewController
的SwiftUI。我已经完成了所有必要的设置与游戏中心和这个GKGameCenterViewController
确实出现在我的SwiftUI视图调用。但是,我不能拒绝它。我知道需要一个Coordinator
来实现GKGameCenterControllerDelegate
,我已经这样做了。但它仍未驳回。我不知道我做错了什么。
struct GameCenterView: UIViewControllerRepresentable {
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func updateUIViewController(_ uiViewController: GKGameCenterViewController, context: Context) {
}
func makeUIViewController(context: Context) -> GKGameCenterViewController {
let vc = GKGameCenterViewController()
vc.delegate = context.coordinator
return vc
}
class Coordinator: NSObject, GKGameCenterControllerDelegate, UINavigationControllerDelegate {
var parent: GameCenterView
func gameCenterViewControllerDidFinish(_ gameCenterViewController: GKGameCenterViewController) {
gameCenterViewController.dismiss(animated: true, completion: nil)
}
init(_ parent: GameCenterView) {
self.parent = parent
}
}
}
发布于 2022-03-29 23:13:26
我有个办法。
delegate
看上去不对。你可以用gameCenterDelegate
。
就像这样:
vc.gameCenterDelegate = context.coordinator
https://stackoverflow.com/questions/70989666
复制相似问题