我有兩個UIViewController A和B,帶有navigationController.On頁面A,在調用API創建/更新UITableView之後。在A上選擇一個單元格後,控制轉到B.還在B頁面上調用API並呈現tableView。在B頁面API中有一些圖像,所以渲染tableview需要時間。在渲染表格視圖之前調用API &後,如果我點擊返回按鈕,控件進入A頁面並點擊A的API。但我注意到B頁面中的表格視圖仍嘗試渲染。所以有時我的應用程序崩潰的原因是「數據源未設置」。objective C:在離開ViewController後停止加載TableView
回答
當你離開(點擊返回)視圖控制器,它必須dealloced,這似乎是一個內存泄露問題,所以要檢查這個將此代碼添加到B的ViewController
deinit {
print(1)
}
如果一切正常,它將打印「1」,如果沒有,檢入B控制器 - 你有一些塊(閉門器)嗎?, 如果是的話,塊中是否使用「自我」?你使用「弱自我」嗎?
__weak MyObject *weakSelf = self;
必須解決您的問題。
謝謝你的回覆非常有用。我添加了這個代碼 - (void)dealloc NSLog(@「1」); } 它在B控制器視圖的表格呈現之後被打印。 –
我也試圖禁用BACK按鈕self.navigationItem.backBarButtonItem.enabled = NO,但此代碼無法正常工作。但我可以從此代碼隱藏BACK按鈕self.navigationItem.hidesBackButton = YES。 –
我認爲ViewController是被處理的,你不需要取消你的請求(如果它是asyc),但是如果你需要的話,你可以嘗試在deinit方法中超時你的請求 –
我想你還沒有在你的imageview中爲cellForRowAt indexpath方法中的延遲加載圖像創建弱引用。嘗試在數據源方法中使用下面的代碼,它會幫助你。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CustomTableviewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
__weak UIImageView *weakImageView = cell.yourImageView;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
weakImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"url"]]];
});
return cell;
}
- 1. 離開ViewController時停止AVCaptureSession
- 2. ViewController tableview在加載後不會更新
- 3. 關閉viewController後重新加載tableView
- 4. 網站開始加載,然後停止
- 5. 如何在重新加載數據後停止tableview的滾動?
- 6. Objective-C停止加載視圖,而在viewDidLoad presentViewController
- 7. TableView重新加載,當你離開然後返回
- 8. 下載後「離子啓動」停止
- 9. 加載tableView後停止活動指示器
- 10. Objective-C AFnetworking:停止請求
- 11. Objective C,TableView error
- 12. IOS,Tableview Objective C,
- 13. 下載停止時關閉ViewController
- 14. objective-c tableview在重新加載時崩潰
- 15. 如何開始 - 在Objective-C中使用ASIHttpRequest停止圖像下載過程?
- 16. 停止在tableview中同步加載圖像
- 17. 停止當鼠標離開在JQuery中
- 18. 在tableView中使用objective-c
- 19. LaunchScreen加載後顯示ViewController
- 20. 在viewcontroller中添加了一個tableview。如何加載的tableview細胞
- 21. Objective C UIActivityView僅在延遲後停止動畫
- 22. 使CSS動畫在離開可見屏幕後停止
- 23. 在離開視圖後停止UICollectionViewCell中的NSTimer
- 24. Opera在jquery加載後停止加載我的頁面
- 25. IE9在x圖像加載後停止加載圖像
- 26. Material CSS - 在頁面加載後停止預加載器
- 27. Angular2在用angularfire2加載數據後停止加載微調器
- 28. Force ViewController在打開之前加載
- 29. 滾動後再次停止加載iframe?
- 30. 加載WebView後無法停止ProgressDialog
這將是看到一些你的代碼,例如,你是如何處理的(大概是異步),網絡電話和響應,及實現的tableView更新 – SomaMan