JimZ
JimZ

Reputation: 1202

iOS, change splash screen by code

Basically, I want my app could change its splash screen by app settings. Settings are saved in plist file.

Actually it's about different language, I want enable my user to choose my app language, even if it's different with the system preferred language.

Is it possible? I searched some answer, suggesting to use another view controller to simulate as splash screen, but my splash screen itself will take some to to load my app, not by my pause. So should I display nothing in the real splash screen?

I wonder if there is a way to change the splash screen by some conditions.

Thanks a guys.

Upvotes: 1

Views: 4052

Answers (2)

DarkDust
DarkDust

Reputation: 92316

Apple does not provide a way to do that, as that would involve either modifying the Info.plist or modifying the splash images, both of which would in turn spoil your code signature. It would also open a very ugly can of worms, so modifying Info.plist will probably never be allowed which in turn means you will not be able to change the splash screen dynamically unless Apple adds explicit support for that via some other means. But right now, you're out of luck, I'm afraid.

Upvotes: 1

micantox
micantox

Reputation: 5616

The splash screen will show only for as long as it takes for the appDidFinishLoading method to return YES. One possible solution is for you to have a really simple (not localizable) splash screen and to basically do nothing in this method and return YES straight away.

You can then use an actual view controller as your splash screen that is dynamically initialized and actually does any initialization your app may need in the viewDidAppear method. Once the initialization is done, you can then proceed and show what would normally be your root view controller.

EDIT: You should also consider, however, that splash screens are not intended to provide any kind of content to the user, as pointed out in this answer.

Upvotes: 4

Related Questions