3

我開發了一個應用程序,它使用UINavigationController來處理同一個UIViewController的多個實例,並且它工作得很好。但是,我使用的UIViewControllers在從服務器加載的有時非常大的UITableView中使用了很多圖像,因此我開始更加關心性能和內存。UINavigationController如何跟蹤多個UIViewControllers?

不在堆棧頂部的UIViewController會發生什麼?如果我深入瞭解幾個視圖,每個視圖都有圖像,那麼無論何時返回視圖,UINavigationController都會在沒有任何加載的情況下呈現視圖,所以我想知道堆棧中的這些視圖是否以任何方式潛在地佔用了很多有價值的東西資源?如內存?

處理這種情況的最佳方法是什麼?有什麼我應該知道的,我顯然不知道?

謝謝!

回答

0

實際上,這已在iOS的文檔中進行了說明。檢查XCode> Organizer> Documentation> iOS,有一個很好的圖解釋了UINavigationController堆棧如何工作,這應該比單詞更好。

但是,簡而言之,您有viewDidLoad和viewWillAppear(及其對立面)方法,可以緩解您的擔憂。應該使用它們來創建/刪除您不需要的任何「內存佔用」部分代碼,「現在」。但是,據我所知,如果由UINavigationController直接控制,則無法控制iOS決定是否需要刷新或不刷新。