So we all know Game Center isn't ideal - if user's don't login at install time it can be hard to get them to login whilst within your app. Game Center is designed to stop presenting the Game Center login view after the user has dismissed it a few times. Short of giving the user clear instructions to login once this has occurred there isn't really any ideal solution to get your user to login once they have decided to do so.
A neat little trick I've just been shown when implementing a singleton within Obj-c/ Xcode. We can forget about the sharedInstance method and simply call the singleton by [UsersSettingsInstance method:parameters].