Прежде чем пользователь сможет использовать мое приложение, он должен войти в систему. После того, как он вошел в систему, база данных создается, потому что мне нужна информация с сервера для ее построения.
Поэтому мой корневой ViewController - это LoginViewController, который модально представляет фактическое приложение (стек Navigation Controller) при успешном входе в систему.
Если пользователь уже вошел в систему при запуске приложения (я сохраняю учетные данные с NSUserDefaults), LoginViewController должен немедленно представить приложение. Поэтому я переписал метод:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSInteger userId = [[NSUserDefaults standardUserDefaults] integerForKey:@"selfUser"];
if (userId != 0) {
//[self performSelector:@selector(presentMainViewController) withObject:nil afterDelay:2];
[self presentMainViewController];
}
}
- (void)presentMainViewController {
mainViewController = [[MainViewController alloc] init];
mainViewController.managedObjectContext = managedObjectContext;
navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
navigationController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:navigationController animated:NO];
}
[self presentMainViewController];
выполняется, но контроллер не отображается. Если я использую строку выше, это работает.
Где я должен поместить код, чтобы он работал?