如果你离开他们的观点,回来,我对tableView的行为感到困惑。 我有一个屏幕,其中有一个表视图,当我第一次进入视图时,该屏幕可以正常工作。添加、删除和更新表单元格工作。但是,当我按下一个按钮进入下一个视图并立即返回时,不再工作。应该执行的代码(和所有相关方法)按其应有的方式运行。但是,即使阵列在内部得到更新,并且重新加载将运行并执行应更新屏幕的代码(即运行正常),屏幕也不会得到更新。 tableViewtableView.reload()tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 我错过了什么?如果我离开视图并返回 ti,tableView 是否需要任何特殊处理? 谢谢。 编辑: 表View 的类的代码如下所示:
class DebugViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{
@IBOutlet weak var table: UITableView! var array = M override func viewDidLoad() { super.viewDidLoad() self.searchbar.delegate = self self.table.delegate = self self.table.dataSource = self search_view = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Search_view") as? SomeViewController } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let cell = tableView.dequeueReusableCell(withIdentifier: "cellManage") as? TableCellManage else { return UITableViewCell() } let idx = indexPath.row let value = array[idx] cell.lbl_time.text = value.month cell.lbl_background.text = value.color return cell } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 130 } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.array.count } @IBAction func tapped_addsongs(_ sender: Any) { self.present( search_view, animated: true, completion: nil) }
表视图.reload()部件在哪里?生成此问题可能是因为您尝试在后台线程中更新表。所有 UI 更新都必须在主线程中完成: func someFunc() { ... DispatchQueue.main.async { tableView.reload() } ... }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。