tôi giả sử bạn đang gọi phương pháp này GKLocalPlayer trên mắt: -setAuthenticateHandler:
(> = iOS7) hoặc -authenticateWithCompletionHandler:
(< = iOS6)
Nếu người dùng hủy bỏ màn hình đăng nhập được trình bày, kêu gọi các phương pháp này một lần nữa không có gì, hay đúng hơn, trình xử lý hoàn thành được gọi với một lỗi. Sau đó, người dùng sẽ cần đăng nhập vào GameCenter thông qua ứng dụng GameCenter hoặc thông qua ứng dụng Cài đặt. (Trong khi thử nghiệm, bạn có thể đăng nhập thông qua ứng dụng GameCenter, sau đó đăng xuất. Sau đó màn hình có thể được hiển thị lại trong ứng dụng của riêng bạn.) Bạn có thể hiển thị UIAlertView yêu cầu người dùng đăng nhập thông qua ứng dụng GameCenter.
Ngoài ra, và tôi không biết nếu điều này được cho phép/phê duyệt, nhưng trong iOS7, authenticateHandler
có thông số viewController
giữ màn hình đăng nhập. Nếu bạn lưu trữ bộ điều khiển xem đăng nhập này trong một biến mẫu và người dùng hủy đăng nhập, bạn có thể hiển thị lại màn hình đăng nhập sau bằng cách sử dụng UINavigationController
.
Nếu bạn cố gắng trình bày bộ điều khiển chế độ xem đăng nhập đã lưu với -presentViewController:animated:completion:
nút Hủy của bộ điều khiển xem không còn hoạt động nữa, nhưng sử dụng nút UINavigationController
ẩn nút Hủy và cho phép điều hướng quay lại bộ điều khiển chế độ xem của riêng bạn.
Bạn cũng sẽ cần ẩn màn hình đăng nhập theo cách thủ công sau khi người dùng đăng nhập bằng cách trả lời GKPlayerAuthenticationDidChangeNotificationName
. Có vẻ như các nhà phát triển không có ý định làm điều này, vì vậy nó có thể không được chấp thuận, nhưng nó hoạt động!
Nguồn
2014-01-03 03:01:11
Bạn đã thử sử dụng phương pháp authenticateHandler của GKLocalPlayer chưa? – san