[英]Segue to new view controller within a nav bar, the memory keeps rising
我正在學習和開發 ios 應用程序。 我有一個帶有按鈕的導航欄,這些按鈕被編程為在應用程序中顯示其他視圖控制器。 下面是代碼示例:
let vc = storyboard?.instantiateViewController(identifier: “ViewController”) as! ViewController
vc.modalPresentationStyle = .fullScreen
self.present(vc, animated: true, completion: nil)
當我在運行模擬時瀏覽應用程序時,Memory 不斷上升。 我是否應該清除以前查看的頁面以使 memory 不會上升?
每次在您的應用程序中呈現新場景時,您作為開發人員都有責任正確呈現和關閉場景。
呈現場景的方式有很多種。
例如, push
式導航自動包含/添加用於backward navigation
的控件,因為它將所有 ViewControllers 添加到其navigation stack
中; 所有 ViewController 都將嵌入同一個NavigationController
中; 因此,當解雇它時,你必須寫:
navigationController.popViewController(animated: true)
VC 將被彈出(從堆棧頂部刪除一個元素,堆棧中的最新元素),而不僅僅是關閉。
在以模態方式呈現場景的情況下,這些 ViewController 必須有自己的NavigationController
。 因此,當解雇它時,你必須寫:
dismiss(animated: true, completion: nil)
你看得到差別嗎? 如果解雇處理得當,那么應該沒有 memory 泄漏。 呈現和關閉與應用程序中的導航有關,每個場景都有這個導航“部分”,您可以在其中處理關閉,以防止 memory 泄漏。
希望它可以幫助你一點點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.