views:

1919

answers:

2

I know it's possible to create a dynamically changable Default.png by creating a symbolic link. But that's not possible in iPhone SDK 3.0 anymore (only in 2.0). How can I make this in 3.0, or is this impossible? Tim

This worked on iPhone OS 2.0 http://collison.ie/blog/2008/11/dynamic-defaultpng-files-on-the-iphone but not on iPhone OS 3.0 anymore. The default-screen is always black.

I can change the default-screen in the documents-folder and the symbolic-link does link to that file. I tested that by browsing to the app-folder from the Simulator. I saw the right file in the documents-directory and I saw that the symbolic link points to that (the right) file.

+3  A: 

It's not possible in 3.0. It was only possible on 2.0 because it was an exploitable bug. The bug was fixed in 3.0 which is why it's not possible.

Apple don't intend the Default.png to be a "splash screen".

If you read the HIG, you'll see that the Default.png is suppose to represent your user interface as it would be "empty" - without any content. It is intended to give the user the illusion of an "near instant" launch.

Check out all of the Apple apps on the iPhone and you'll see how the default.png is meant to be used properly.

Apple frown upon using the Default.png as a splash screen. They say that it is really only appropriate for apps such as games that don't use the standard UI elements that are provided in the SDK.

That being said - lots of apps these days are using this feature to show splash screens, and seems Apple aren't really enforcing this guideline.

Long story short, you can do a splash screen, but it can't be dynamic - not anymore.

Jasarien
Thanks, I hope it'll be possible in the new SDK :) (like an application delegate or something:- (UIImage *)defaultImage {/* return nil for standard default.png */return [UIImage imageNamed:@"someotherdefault.png"];}For example
Tim van Elsloo
I doubt this will be possible in future SDK releases. The system will need access to the image before any of your apps code executes, because it's needed in the launching animation.
Jasarien
A: 

Use a blank Default.png and then in your app delegate's -applicationDidFinishLaunching: method, load a UIView that contains your dynamic content. This solution sidesteps any conflicts with Apple's SDK terms as well as all technical problems.

Alex Reynolds