Я делаю что-то неправильно, но не уверен, что это такое. Ниже приведена диаграмма моего storyboard
.неправильная последовательность следования контроллера навигации в пустой панели навигации
/----(push)----login \
Start nav ctrl mainview nav ctrl
\----(modal) register/
Когда пользователь проходит через логин событие, принимается appdelegate
logindone, в Логин сделал я:
self.window.rootViewController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:@"MainView"];
Это работает просто отлично.
Однако, если пользователь проходит регистрацию и завершает регистрацию при входе в систему, запускается тот же loginDone, но приведенный выше код приводит к пустым view
.
Если я заменяю выше код с
UIStoryboard* storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
MainCtrl *mainViewController = (MainCtrl*)[storyBoard instantiateViewControllerWithIdentifier: @"MainView"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
self.window.rootViewController =navigationController;
Это почти работает, вид отображается правильно, только проблема в том, что навигационная панель пустой, и он остается пустым, независимо от того, где я иду. Конечно, перезапуск приложения работает, потому что он обходит контроллер регистров.
в регистре Я делаю [self dismissViewControllerAnimated:NO completion:nil];
перед вызовом loginDone, но это действительно не имеет значения. Любые предложения?
Edit:
self.window.rootViewController = [self.window.rootViewController.storyboard
instantiateViewControllerWithIdentifier:@"MainView"];
это единственное, что будет работать в нормальном т.е. потока после входа в систему. В противном случае я получаю сообщение об ошибке «недоступный segue».