簡體   English   中英

在導航欄中轉到新視圖 controller,memory 不斷上升

[英]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.

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