I get two of the same root view
===

I am testing my app on iphone and the software version is 4.2.1. I find some problems happened when switching from a customer launchview controller to the rootview controller. The code is as below:

     - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
     ....
    launchViewController = [[[LaunchImageTransition alloc] initWithNibName:@"LaunchView_iphone" bundle:nil controller:self.viewController animation:UIModalTransitionStyleCrossDissolve] autorelease];

    self.window.rootViewController = launchViewController;
     ....
    }

In the "LaunchImageTransition.m":

    //do some initial work
    [self presentModalViewController:self.rootViewController animated:YES];


The rootViewController is initialed in the "MainWindow.xib". 

When I test on the iphone simulator, everything is ok. But when I test on the real device, I find that the viewDidAppear method of the rootViewController is called twice while the viewDidload method is called once. This result in two of the same view。

I want to know why this only happened on real device and how to fix it?
