2012-10-04 63 views
1

自升級到6以來,我一直有我的ios應用程序出現問題。我確定我有一些配置錯誤,直到現在被隱藏。iOS6 + Storyboard +看起來是雙倍

我正在使用故事板,並作爲我的第一視圖,只是一個普通的舊香草視圖控制器。這是我的登錄頁面。當你點擊「登錄」按鈕時,它會跳到「選項卡欄控制器」,其中有一堆標籤,包括一個帶有「註銷」按鈕的標籤。

編輯:重要的是不要登錄視圖控制器推動「MODAL」segue到選項卡欄控制器。

「註銷」按鈕將運行一個

[self dismissModalViewControllerAnimated:YES]; 

發送回給登錄視圖。用戶然後可以繼續並重新登錄等等...

問題是,它似乎每一次我從登錄到標籤視圖去我得到一些重複。我知道這樣做的原因是因爲在標籤視圖我有一個

[[NSNotificationCenter defaultCenter] removeObserver:self]; 

// Register observer to be called when download of data is complete 
[[NSNotificationCenter defaultCenter] removeObserver:self name:OBJECTS_LOADED_NOTIFICATION object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(coreDataViewController_downloadDataComplete:) 
              name:OBJECTS_LOADED_NOTIFICATION 
              object:nil]; 

這應該已經刪除頁面上的任何觀察員和只添加新的。然而,它一直在不斷地增加觀察員。這導致我相信內存中有多個版本的頁面。

有人可以幫忙!?我一直試圖連續四天解決這個問題,但沒有結果。我敢肯定,這是瘋狂的愚蠢,但我不能爲我的生活弄清楚什麼。

感謝 馬特

編輯: 每請求我加入了更多的代碼... :-)我想這是容易只是發佈整個項目,而隨後發佈位,它的一部分。

https://github.com/MCKRUZ/Iphone

+0

你應該在viewWillDissappear在viewWillAppear中添加觀察員和刪除在你的情況。此外,在iOS6中不推薦使用dismissModalViewControllerAnimated:YES。 – Shmidt

+0

將觀察者置於viewWillAppear中並在viewWillDisappear中將其刪除將有助於觀察者,但不會擺脫我的模態重複問題。但這是一個很好的提示,謝謝。 – Matt

+0

同樣將代碼移到非折舊方法也沒有幫助。 – Matt

回答

0

好吧,我解決了/規避這個問題。基本上,它仍然重新創建VC的每一次我註銷並重新登錄,但我重新編寫代碼,以便它沒有關係,因爲我使用的對象上下文是在服務中,而不是在頁面上。

儘管如此,它的古怪行爲,蘋果將不會刪除的VC的未使用的情況下....我錯過pageDidUnload ...