У меня есть приложение с 2 раскадровки. Один из них - основное приложение для приложения, а другое - установочная раскадровка для настройки профиля пользователя. Прямо сейчас, у меня он настроен так, что основным интерфейсом является Setup.storyboard
. В первом представлении контроллера в этой раскадровке, в методе -viewWillAppear:animated
, он проверяет NSUserDefault
, чтобы узнать, завершена ли настройка. Если это так, я выполняю этот код.Ошибка при представлении различного раскадровки программно
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"userHasCompletedSetup"]) {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
SWRevealViewController *vc = [sb instantiateViewControllerWithIdentifier:@"initialVC"];
[self presentViewController:vc animated:YES completion:NULL];
}
}
Я получаю ошибку Warning: Attempt to present <SWRevealViewController: 0x7ff20a595220> on <MPOSetupOneViewController: 0x7ff20a720b80> whose view is not in the window hierarchy!
(я использую SWRevealViewController
в моем приложении для меню.)
Я получаю эту ошибку, и контроллер представления не включается. Есть ли способ переключить раскадровки на основе NSUserDefault
? Могу ли я сделать это в AppDelegate?
@matt Как это работает? Will -> Только что сделал ключевую часть моего приложения правильно. Если вы можете добавить это в ответ, плохо согласитесь. – Minebomber