2013-12-19 59 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,但这真的没有什么区别。 有什么建议吗?

编辑:

self.window.rootViewController = [self.window.rootViewController.storyboard 
            instantiateViewControllerWithIdentifier:@"MainView"]; 

仅仅是将正常流量即登录后工作的事情。否则,我会碰到“不可用的赛格”。

回答

0

我解决这个问题的方式并不完全是我想要修复它的方式,但它很有效。我不得不修改用于处理登录完成工作的登录完成函数,并且将主要视图传递给不传递参数的过渡。在返回时,我从注册视图触发一个segue到主视图。仍然不确定它为什么没有按照我最初完成的方式工作。