开发者

Presenting Modal View Controller before window is visible

开发者 https://www.devze.com 2023-03-11 13:26 出处:网络
I would like to present a view controller modally before calling -makeKeyAndVisible on the application\'s window. However, this code only shows the mainNav view controller:

I would like to present a view controller modally before calling -makeKeyAndVisible on the application's window. However, this code only shows the mainNav view controller:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    MainViewController *main = [[MainViewController alloc] init];
    UINavigationController *mainNav = [[UINavigationController alloc] initWithRootViewController:main];

    if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Restore"]) 
    {
        DetailViewController *detail = [[DetailViewController alloc] init];
        UINavigationController *detailNav = [[UINavigationController alloc] initWithRootViewController:detail];

        // changing main to mainNav does not help
        [main presentModalViewController:learnNav animated:NO];

      开发者_运维百科  [detailNav release]; [detail release];

    }

    self.window.rootViewController = mainNav;

    [main release]; [mainNav release];

    [self.window makeKeyAndVisible];

    return YES;
}

What am I missing?


You should better make the window appear and then present the modal view with animated=NO. What's the point of presenting the modal view before everything else is instantiated and displayed?

Edit

To try to make your code work, here are a couple of hints. Try this:

[mainNav presentModalViewController:learnNav animated:NO];

or this:

[main.navigationController presentModalViewController:learnNav animated:NO];

I'd say that these two methods work best if they're put after the makeKeyAndVisible call.

0

精彩评论

暂无评论...
验证码 换一张
取 消