我有一个使用 SwiftUI的UIViewControllerRepresentable
实现。GKGameCenterViewController
我已经使用 Game Center 完成了所有必要的设置,并且GKGameCenterViewController
在我的 SwiftUI 视图中调用时确实会出现。但是,我不能拒绝它。我知道Coordinator
实施 the 需要aGKGameCenterControllerDelegate
并且我已经这样做了。但它仍然没有放弃。我不确定我做错了什么。
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
}
}
}