ios - Show GameCenter login later if user dismisses login screen at start of game? -
we present gamecenter login screen upon game's launch. @ end of game, show gamecenter button lets users view achievements , game's leaderboards. if dismissed original screen , aren't logged in, how can present login screen again? here's code we're using, it's not working.
override func viewdidload() { super.viewdidload() // configure view let skview = view as! skview skview.multipletouchenabled = false //skview.showsnodecount = true //skview.showsfps = true // show intro scene let introscene = introscene(size: skview.bounds.size, controller: self) introscene.scalemode = .aspectfill skview.presentscene(introscene) // authenticate gamecenter player authenticategamecenterplayer() } private func authenticategamecenterplayer() { var localplayer = gklocalplayer.localplayer() localplayer.authenticatehandler = {(viewcontroller : uiviewcontroller!, error : nserror!) -> void in if ((viewcontroller) != nil) { self.presentviewcontroller(viewcontroller, animated: true, completion: nil) } else { println((gklocalplayer.localplayer().authenticated)) } } } func showleaderboard() { // user logged gamecenter? if (!gklocalplayer.localplayer().authenticated) { println("local player not authenticated") authenticategamecenterplayer() return } // if here, user authenticated present leaderboards var gcviewcontroller = gkgamecenterviewcontroller() gcviewcontroller.gamecenterdelegate = self gcviewcontroller.viewstate = gkgamecenterviewcontrollerstate.leaderboards gcviewcontroller.leaderboardidentifier = "highscoresleaderboard" self.showviewcontroller(gcviewcontroller, sender: self) self.navigationcontroller?.pushviewcontroller(gcviewcontroller, animated: true) }
game center remembers users log-in preferences , if user dismisses log-in dialog many times, stop being displayed, when call localplayer.authenticatehandler
the recommended way of handling display message telling user log in through game center app
Comments
Post a Comment