你好,我在UIViewController
里面有UINavigationController
,里面有UITableView
。当用户点击“后退”按钮(这会触发popViewController
的{{1}}功能时,我正在重置数据模型。如果我UINavigationController
,在滚动popViewController
时,App在UITableView
函数上崩溃。什么会导致此问题?
cellForRowAt 函数:
cellForRowAt
后退按钮
class MyViewController: UIViewController, TableView... {
var myChecksModel: MyChecksModel!
.
.
.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: MyChecksListTableViewCell = tableView.dequeueReusableCell(withIdentifier: cellId) as? MyChecksListTableViewCell ??
MyChecksListTableViewCell(style: .default, reuseIdentifier: cellId)
let check = self.myChecksModel.chequeList[indexPath.row]
cell.myChecksData = check
return cell
}
重置模型功能
@objc func backButtonTapped(_ sender: UIButton) {
DispatchQueue.main.async {
self.myChecksModel.resetModel()
self.navigationController?.popViewController(animated: true)
}
}
答案 0 :(得分:2)
您的应用因
而崩溃索引超出范围
您应该致电
self.myChecksModel.resetModel()
在
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.myChecksModel.resetModel()
}