iOS14,TableView:didSelectRowAtIndexPath未被调用

5

iOS14更新后 TableView:didSelectRowAtIndexPath方法没有被调用。 在iOS13中使用相同的代码正常运行。

添加表格视图A到父视图,点击后执行: [self.superview addSubview:A] 我是这样添加表格视图的, 所以代理从当前视图接收, 直到iOS13为止都正常,为什么不行了?

2个回答

1

有两种方法:

第一种

当您使用UITableViewController时,它会自动符合UITableViewDataSourceUITableViewDelegate协议。

@interface UITableViewController : UIViewController;

第二步

如果您正在使用UITableView,则必须将其符合两个协议 - UITableViewDataSourceUITableViewDelegate并分配两个类代理。

@interface UITableView : UIScrollView;

@property(nonatomic, weak) id<UITableViewDelegate> delegate;
@property(nonatomic, weak) id<UITableViewDataSource> dataSource;

如果这两种方法都不起作用,那么这肯定是iOS 14中的一个错误。

关于方法:

tableView:didSelectRowAtIndexPath:

苹果文档称:
如果表中的行不可选择,则系统不会调用此方法。有关控制表行选择行为的更多信息,请参见处理表视图中的行选择

所有支持的iOS版本都适用同样的规则。 - Andy Jazz

0

这肯定是iOS 14的一个bug,我遇到了同样的问题(我相信)。我认为这个Twitter帖子揭示了这个问题的一些信息。假设你的问题和我的一样,现在你需要将子视图添加到单元格的contentView上。 https://twitter.com/smileyborg/status/1276623198059036672

[tableViewCell addSubView:] - > [tableViewCell.contentView addSubView:]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接