2011-08-22 26 views
1

我對我的應用2種不同的視圖(一個用於人像,另一個用於風景模式),我想,這樣我使用較少的內存將它們分成不同的XIB文件。我已經這麼做了,但是當改變iPad的方向時,我的視圖變爲空白。 我試着做到以下幾點:加載不同的廈門國際銀行在當前視圖旋轉時

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{ 
self = [[MyController alloc] initWithNibName:@"MyControllerLandscape" bundle:nil]; 
} 

,但它只是初始化無數據(無圖像,無標籤,...)的視圖。我如何「卸載」當前視圖並使用界面方向「加載」新視圖以避免彈出視圖並推送新視圖?

編輯:

我現在這個嘗試,它或多或少工作:

[[NSBundle mainBundle] loadNibNamed:@"myPortraitView" owner:self options:nil]; 
[[NSBundle mainBundle] loadNibNamed:@"myLandscapeView" owner:self options:nil]; 

我現在的問題是:如果我這樣做對我的init()方法,將其加載兩種觀點到內存或只是一個參考加載視圖時,neded?

回答

2
+0

這是一個很好的解決方案,但(請糾正我,如果我錯了),是使用每個橫向視圖控制器的傢伙另一個是肖像模式?我想要做的只是在內存中加載1個視圖(將顯示的視圖)並移除另一個視圖,以節省內存。使用這個例子我只會節省內存,以防用戶不旋轉設備,是嗎?感謝名單! – Alex

+0

這兩個控制器將坐在內存中,是的,但如果應用程序收到內存警告,非活動視圖將能夠卸載。我想你可以在需要的時候才創建視圖控制器(也就是在將它們推入導航控制器之前)並在彈出後釋放它們。這樣,你只能在內存中看到一個視圖和一個控制器,但當然每次設備旋轉時加載視圖可能會導致性能損失 - 儘管我懷疑它會引起注意,除非你有非常複雜的視圖。 – SVD

相關問題