2014-11-04 5 views
2

Я знаю, что этот вопрос задан, но методы не работают для меня. У меня есть контроллер представления, который содержит учебник, который я только хочу отображать в качестве исходного вида при первом открытии приложения. После этого основным меню всегда будет начальное представление. Идентификатор раскадровки для моего экрана «Учебник» - «Учебник». У меня есть следующий код для обнаружения первого запуска, но я не могу понять, как сделать учебник появится:Изменить начальный контроллер просмотра для первого запуска

- (void)viewDidLoad 
{ 
if ([[NSUserDefaults standardUserDefaults]boolForKey: @"FirstLaunch"]) 
{} 
else{ 

    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstLaunch"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

ответ

3

Вы можете изменить первоначальный контроллер двумя способами:

  1. Проверка «Является ли Initial флажок VC»в Interface Builder или
  2. Настройки его на -Применении: didFinishLaunchingWithOptions: метод

Изменение начальной контроллер представления ¯u Sing Применение Делегат

В -Применение: didFinishLaunchingWithOptions: в прикладной делегат (AppDelegate.m) добавить если/другое, чтобы проверить необходимость урока:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 
    if (![[NSUserDefaults standardUserDefaults] boolForKey: @"FirstLaunch"]) 
    { 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstLaunch"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
     /*** load vc ***/ 
    } 
    return YES; 
} 

Для установки начального контроллера вы должны инициализировать свойство окна, создать vc и установить его как корень:

// 1. Initialize window 
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 
// 2. Get storyboard 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
// 3. Create vc 
TutorialViewController *tutorialViewController = [storyboard instantiateViewControllerWithIdentifier:NSStringFromClass([TutorialViewController class])]; 
// 4. Set as root 
self.window.rootViewController = tutorialViewController; 
// 5. Call to show views 
[self.window makeKeyAndVisible]; 

Надеюсь, это поможет!

+0

Я получаю сообщение об ошибке «Property» раскадровка «не найдена на объекте типа« App Delegate »« Любые идеи? Большое спасибо за Вашу помощь! – user3808557

+0

Спасибо за замечание! Отредактировал мой ответ. Вы можете найти свое имя раскадровки на своем основном информационном экране. Обычно это называется «Main» или «Main_iphone» –

+0

Спасибо! Но теперь я получаю сообщение об ошибке «Использование незаявленного идентификатора« navigator VC »« Как я могу исправить эту проблему? Большое спасибо за вашу помощь. – user3808557

Смежные вопросы