ios - 切換根視圖控制器後如何釋放掉上一個視圖控制器?
扔个三星炸死你
扔个三星炸死你 2017-07-01 09:12:25
0
2
1287

比如說:啟動APP後進入的第一個VC是廣告VC,這個時候的根視圖控制器是廣告VC,幾秒後跳到主頁VC,這時候我將根視圖控制器切換到主頁VC。由於我不再需要回到廣告VC,所以我想將廣告VC釋放掉,有什麼辦法?
解決過這種問題的同學分享下。

扔个三星炸死你
扔个三星炸死你

全部回覆 (2)
给我你的怀抱

最早我測試過這種情況,這樣的廣告VC並不會被自動釋放,也就是說一直佔用著內存,不過相當少而已

你可以找到廣告vc的指標變量,設為nil,此操作應在下一個介面出現之後再進行以避免視圖突然變換

另一種,可以在廣告vc的生命週期方法viewDidDisappear方法中,手動清除控制指針,如self.view = nil,廣告的UIImageView,另外由於廣告只需加載一次且是大控件圖,最好使用contentsOfFile方式

    代言

    直接修改WindowrootController可以釋放之前的廣告VC.

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { _window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; _window.backgroundColor = [UIColor whiteColor]; _window.rootViewController = [ADViewController new]; [_window makeKeyAndVisible]; // 2.0秒后跳转到mainController dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ MainViewController *VC = [MainViewController new]; // 修改 rootViewController 后, ADViewController会释放 _window.rootViewController = VC; }); return YES; }
      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板
      關於我們 免責聲明 Sitemap
      PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!