2013-12-19 86 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到主視圖。仍然不確定它爲什麼沒有按照我最初完成的方式工作。