簡単な質問がありますが、Appleのドキュメントを調べて検索を行ったところ、答えが見つかりませんでした。
Game Centerのサインインビューをプログラムでプルアップすることは可能ですか?Game Centerが必要なUIButton
ものがあり、アプリを開いたときにクライアントがサインインしない場合(iOSは起動時にサインインビューを表示します)、ユーザーがサインインするための2回目のチャンスを提供したいと思います。
簡単な質問がありますが、Appleのドキュメントを調べて検索を行ったところ、答えが見つかりませんでした。
Game Centerのサインインビューをプログラムでプルアップすることは可能ですか?Game Centerが必要なUIButton
ものがあり、アプリを開いたときにクライアントがサインインしない場合(iOSは起動時にサインインビューを表示します)、ユーザーがサインインするための2回目のチャンスを提供したいと思います。
起動時にこのGKLocalPlayerメソッドを呼び出していると仮定します:-setAuthenticateHandler:
(> = iOS7)または-authenticateWithCompletionHandler:
(<= iOS6)
ユーザーが表示されたログイン画面をキャンセルした場合、これらのメソッドを再度呼び出しても何も実行されません。つまり、完了ハンドラーがエラーで呼び出されます。次に、ユーザーはGameCenterアプリまたは設定アプリからGameCenterにログインする必要があります。(テスト中は、GameCenterアプリからログインしてからログアウトできます。その後、画面を自分のアプリに再度表示できます。)ユーザーにGameCenterアプリからログインするように指示するUIAlertViewを表示できます。
または、これが許可/承認可能かどうかはわかりませんが、iOS7ではログイン画面を保持authenticateHandler
するパラメーターがあります。viewController
このログインビューコントローラをインスタンス変数に保存し、ユーザーがログインをキャンセルした場合、後でを使用してログイン画面を再度表示できますUINavigationController
。
保存したログインViewControllerに-presentViewController:animated:completion:
ViewControllerの[キャンセル]ボタンを表示しようとすると、機能しなくなりますが、を使用するUINavigationController
と[キャンセル]ボタンが非表示になり、独自のViewControllerに戻ることができます。
また、ユーザーがに応答してログインした後、ログイン画面を手動で非表示にする必要がありますGKPlayerAuthenticationDidChangeNotificationName
。開発者がこれを実行できるように意図されていたようには見えないため、承認に合格しない可能性がありますが、機能します。