场景:
长按某个cell,弹出editMenu,点击editMenu的某个item,删除cell对应的数据,reloadData,刷新UI。
问题:
iOS11之UI可以正常刷新。iOS11之后无效。
查找问题:
editMenu的item的回调方法是在cell中回调到控制器的。回调出来删除数据后调用reloadData后,不走数据源方法。
解决问题:
在reloadData之前,[self.tableView becomeFirstResponder]。
原因:
在cell中展示editMenu,需要让cell变为第一响应者。然后回调到控制器中,在iOS11中,直接在该cell的block回调中调用reloadData无效。tableView的reloadData为什么和firstResponder有关?为什么iOS11之前都没问题?