iOS14更新后 TableView:didSelectRowAtIndexPath方法没有被调用。 在iOS13中使用相同的代码正常运行。
添加表格视图A到父视图,点击后执行: [self.superview addSubview:A] 我是这样添加表格视图的, 所以代理从当前视图接收, 直到iOS13为止都正常,为什么不行了?
iOS14更新后 TableView:didSelectRowAtIndexPath方法没有被调用。 在iOS13中使用相同的代码正常运行。
添加表格视图A到父视图,点击后执行: [self.superview addSubview:A] 我是这样添加表格视图的, 所以代理从当前视图接收, 直到iOS13为止都正常,为什么不行了?
有两种方法:
第一种
当您使用UITableViewController时,它会自动符合UITableViewDataSource
和UITableViewDelegate
协议。
@interface UITableViewController : UIViewController;
第二步
如果您正在使用UITableView,则必须将其符合两个协议 - UITableViewDataSource
和UITableViewDelegate
并分配两个类代理。
@interface UITableView : UIScrollView;
@property(nonatomic, weak) id<UITableViewDelegate> delegate;
@property(nonatomic, weak) id<UITableViewDataSource> dataSource;
如果这两种方法都不起作用,那么这肯定是iOS 14中的一个错误。
关于方法:
tableView:didSelectRowAtIndexPath:
这肯定是iOS 14的一个bug,我遇到了同样的问题(我相信)。我认为这个Twitter帖子揭示了这个问题的一些信息。假设你的问题和我的一样,现在你需要将子视图添加到单元格的contentView上。 https://twitter.com/smileyborg/status/1276623198059036672
[tableViewCell addSubView:] - > [tableViewCell.contentView addSubView:]