I don’t know if it is just my project (Unity 5.1.2f1):
Launch your iOS app on device.
Open any ViewController in app, for example GameCenter Leaderboards (problem is also with SKStoreProductViewController, UIActivityViewController or third party plugins like Chartboost ads).
Press Home button and then return to game.
ViewController will disapear and now you cannot show any new ViewController, for example trying to show Leaderboards again will fail.
My fix is to delete all code related to _snapshotView in UnityAppController.mm. It is messing with view hierarchy.
My question is: do I need snapshotView? What is it for?
oh that sounds like something we missed a bit but that you can quite workaround. Anyway
Snapshot is here to allow you to override what is shown in “task list” when your app is in background: when going to pause we send app-pause event and run player loop once, so you can, for example, hide things etc (e.g. if there is timed puzzle you want to disallow looking at it paused)
can you please create small repro projects and bug report with repro steps? It is possible to tweak snapshot creation just fine but i would need more details to advice (or maybe fix if we did something wrong).
I added bug (717888) with small project showing only iOS Leaderboards (but the same is with other viewcontrollers).
It apears that bug is on iOS7 and iOS8 (on iOS6 is fine I think).
On iPad there is warning:
Warning: Attempt to present <GKLeaderboardViewController: 0x16934400> on <UnityDefaultViewController: 0x16766cc0> which is already presenting <GKLeaderboardViewController: 0x169a4000>