2013-02-28 30 views
0

我有一些問題:使用UITabBarController和3個標籤IM,女巫一個是相機。當我打開相機時,有時會收到內存警告。當它發生時,除了相機之外,我的所有視圖都被釋放。這是正常的嗎?有沒有辦法控制不發生?格拉茨。的UITabBarController重新分配我viewcontrollers

編輯:用3GS型號IM測試

+0

你是否聲明你的viewControllers屬性?或強烈的參考? – nsgulliver 2013-02-28 21:05:19

+0

沒有,我只是將這樣的事情:TestViewcontroller * T1 = [TesteViewcontroller頁頭] initWithNibName:@ 「TestViewcontroller」 零]。 TestViewcontroller * t3 = [TesteViewcontroller alloc] initWithNibName:@「TestViewcontroller」nil]; TestViewcontroller * t2 = [TesteViewcontroller alloc] initWithNibName:@「TestViewcontroller」nil]; tabController.viewControllers = [NSArray arrayWithObjects:t1,t2,t3,nil]; tabController.delegate = self; self.window.rootViewController = tabController; – 2013-02-28 21:10:33

回答

2

我想你的意思是你的視圖控制器的意見將被釋放,而不是視圖控制器本身。

這是正常現象。 UIViewController是基於這樣的假設,即在內存不足的情況下,如果視圖控制器的視圖不在屏幕上,視圖可以被丟棄。您可以將狀態保存在-viewWillUnload中,以便在視圖控制器視圖返回到屏幕上並重新創建時重建它。

這個自動卸載行爲在iOS 6中被刪除。

+0

這是常見的事情嗎?對於我卸載所有視圖給崩潰的效果= /我應該如何處理它不卸載? – 2013-02-28 21:19:36

+1

你不能阻止它卸載。什麼是事故的真正原因? – 2013-02-28 21:35:55

+0

不,它不會崩潰,但對於我卸載視圖控制器給這個「效果」。你認爲是因爲3gs?或與代碼? – 2013-02-28 22:43:07