Я хотел бы иметь представление с инструкциями о том, как использовать приложение, при первом открытии приложения. Я рассмотрел проблему единственного показа этого представления при первом запуске с помощью NSUserDefaults, но мне не удается получить представление, чтобы отобразить способ, которым я хочу его, модально, а не как rootViewController. Вот мой AppDelegate.m код:Show View Controller Модифицировано при первом запуске
- (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, чтобы вернуться к корневому контроллеру. Выполнение кода в письменном виде никогда не отображает вид инструкций. Единственный способ, с помощью которого я могу видеть инструкцииПиоконтроллер, - это изменить строку [self.viewController presentModalViewController:howtoNavController animated:NO];
на self.window.rootViewController = self.instructionsViewController;
, но это явно не то, что я хочу (если только я не смогу вернуться к viewController).
Надеюсь, я ясно дал понять, чего я пытаюсь достичь. Заранее спасибо.
Wow. Огромное спасибо. Я не думаю, что я бы подумал сделать это. –