2013-07-27 37 views
0

我在xCode中進行編程,我的一個Nib/Xib文件中有一些按鈕會根據情況隱藏並顯示。它也有把它帶到不同的Nib/Xib文件的按鈕。如果我切換到新的Nib/Xib文件並返回,應該使用哪些代碼來確保在第一個Nib/Xib文件中隱藏/顯示的按鈕保持這種狀態?我到目前爲止的編碼方式(我是一個初學者),我每次重新載入一個視圖並重置爲初始狀態。如何切換回視圖,而不重置,關於IOS編程?

我使用目前的代碼基本如下:

- (IBAction)backToHomeView:(id)sender { 
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.homeViewController = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil]; 
self.window.rootViewController = self.homeViewController; 
self.window.backgroundColor = [UIColor whiteColor]; 
[self.window makeKeyAndVisible]; 

}

我希望這不是太混亂,讓我知道如果我需要更詳細地說明。 感謝和問候。

+0

這取決於你在做什麼,以顯示/隱藏你的視圖控制器。一些方法將其保存在內存中,而另一些方法將從內存中釋放實例。 – Stavash

+1

你已經實現了哪些代碼切換回視圖?請在此提及,以便我們可以幫助您。 – Pratik

+0

我編輯了我原來的帖子Pratik。 – NBAfan

回答

0

如果您使用UINavigationController其他視圖推到它上面,父視圖不應該改變。這是解決這個特殊問題的標準方法。

另一種方式是使用某種狀態數據模型來保持按鈕的狀態,並確保在視圖出現在屏幕上之前正確設置狀態。

+0

感謝你們兩個,我想我應該通過「相應地跟蹤和更新視圖」給它一個鏡頭,這是如果我理解正確的話,就和「狀態數據模型」一樣。再次感謝 – NBAfan

2

解決方案是避免使用您的視圖來跟蹤應用程序狀態。如果「情況」發生變化,無論是由於用戶操作還是由於外部因素(如傳感器讀數,時間流逝,收到的數據等),您的應用都應該跟蹤並相應更新視圖。如果你能做到這一點,視圖是否保持其狀態並不重要 - 你應該在它們即將顯示時將它們更新到當前應用程序狀態(-viewWillAppear)。

+0

感謝你們兩位,我認爲我應該通過「相應地跟蹤和更新視圖」來實現這一目標,如果我正確地理解了這一點,那麼它與「狀態數據模型」是一樣的。再次感謝。 – NBAfan