Я хотел бы получить представление о том, как использовать мое приложение, которое будет отображаться при первом запуске приложения. Я справился с проблемой показа только этого представления при первом запуске с использованием NSUserDefaults, но у меня возникли проблемы с отображением представления так, как я хочу, модально, а не как rootViewController. Вот мой код AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];
self.window.rootViewController = self.viewController;
BOOL hasShownStartup = [[NSUserDefaults standardUserDefaults] boolForKey:kAppHasShownStartupScreen];
if (!hasShownStartup) {
[self showInstructions];
}
[self.window makeKeyAndVisible];
return YES;
}
- (void)showInstructions
{
NSLog(@"showing instructions");
InstructionsViewController *howToView = [[InstructionsViewController alloc] initWithNibName:@"InstructionsViewController"
bundle:nil];
self.instructionsViewController = howToView;
[howToView release];
UINavigationController *howtoNavController = [[UINavigationController alloc]
initWithRootViewController:self.instructionsViewController];
self.instructionsViewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self.viewController presentModalViewController:howtoNavController animated:NO];
[howtoNavController release];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kAppHasShownStartupScreen];
}
Я хочу, чтобы мой rootViewController оставался self.viewController. Я хочу иметь возможность щелкнуть «Готово» на панели навигации инструкций ViewController, чтобы вернуться обратно к rootViewController. Выполнение кода в том виде, в котором оно написано, никогда не показывает представление инструкций. Единственный способ увидеть инструкцииViewViewController - это изменить строку [self.viewController presentModalViewController:howtoNavController animated:NO];
на self.window.rootViewController = self.instructionsViewController;
, но это, очевидно, не то, что я хочу (если только я не смогу модально перейти обратно к viewController).
Надеюсь, я достаточно ясно дал понять, чего я пытаюсь достичь. Заранее спасибо.