2013-12-19 8 views
0

Я делаю что-то неправильно, но не уверен, что это такое. Ниже приведена диаграмма моего 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».

ответ

0

Способ, которым я исправил это не совсем так, как я хотел его исправить, но он работает. Мне пришлось изменить функцию входа в систему, которая использовалась для обработки работы с завершением работы, и переход к главному представлению, передавая ему параметр не для перехода. По возвращении я вызываю segue на главный вид из регистрационного представления. Все еще не уверен, почему он не работал так, как я это делал изначально.

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