0

我有一个使用 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
        }
    }
}
4

0 回答 0