簡體   English   中英

Modal View控制器在出現內存警告時被解雇?

[英]Modal View controller dismissed on memory warning?

我的應用程序中出現一個間歇性錯誤,最終我可以通過在特定情況下模擬內存警告來一致地重現它。 這是設置。

 Nav controller
 (as tab inside      --> Modal Controller 1 --> Modal Controller 2
 Tab Controller)

如果在屏幕上出現Modal Controller 2時模擬了內存警告,則Modal Controller 1將關閉,底部導航控制器會一直彈出回到其根目錄。 這正是所報告的錯誤中發生的情況。

如果用戶然后按下MC2中的“完成”按鈕,它將在MC1中調用一個委托方法,該方法會崩潰,因為內存警告導致MC1被卸載和取消分配。

我的應用程序中還有其他地方,導航控制器顯示模式視圖控制器鏈,但是觸發內存警告只會在我的應用程序的一個特定區域中引起此問題。

有什么可能導致此行為的嗎? 我沒有特定的代碼示例,因為我不確定是什么代碼導致了問題。 我將不勝感激任何指針。

發生內存警告時,iOS可能會釋放所有不可見的視圖,包括MC1的視圖(但不包括MC1本身)。 您需要在MC1中實現以下功能。

  • 在viewDidUnload中或在顯示MC2之前,請記住當前狀態。
  • 在viewDidLoad中,還原舊狀態(如果有)。
  • 在委托方法中,調用[self view]以加載視圖(如果已釋放)。

或者,您可能需要考慮以下技巧。 UIViewController防止視圖卸載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM