tableView didSelectRowAtIndexPath 无法正常工作

Posted

技术标签:

【中文标题】tableView didSelectRowAtIndexPath 无法正常工作【英文标题】:tableView didSelectRowAtIndexPath doesn't work correctly 【发布时间】:2014-02-18 10:47:38 【问题描述】:

我有一个非常奇怪的问题。 我在视图控制器中有一个UITableView,我可以自定义所有我想要它工作的东西。但是我希望当我点击一行时会出现另一个视图(这并不难),所以我做到了:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

    NSLog(@"didSelectRowAtIndexPath");
    self.myFicheView.hidden=NO;

    [tableView deselectRowAtIndexPath:indexPath animated:YES];

但是当我单击一行时,不会调用该方法。就像它不起作用我尝试了很多东西,我发现了一些奇怪的东西。 当我在该行上短暂单击时没有任何反应,但是当我在 3 秒内单击它时它会起作用,并且当我在该行上滑动手指时也是如此。

有人知道这里有什么问题吗?

@interface MapViewController : UIViewController<UITableViewDelegate,UITableViewDataSource>



@property (strong, nonatomic) IBOutlet UITableView *myTableView;

这里是我的 tableView 的连接检查器 http://hpics.li/256d01e

【问题讨论】:

你添加了self.myTableView.delegate = self; ? @iPatel 在这种情况下不会改变任何东西,财产可以保留它。强、弱或保留。 通过设置[tableView setAllowsSelection:YES]确保tableView可以响应选择; 如果是代表问题,他就不会说"when i click during 3 seconds it work" self.myFicheView 放置在哪里 - 它是主视图的子视图吗?是在table view前面吗? 【参考方案1】:

我完全不知道您的 xib 是什么样子,假设如果视图出现在您的表格视图前面的某个地方,请尝试将您的表格视图放在该未隐藏视图的前面。

假设如果您仅使用 [tableView deselectRowAtIndexPath:indexPath animated:YES]; 方法来取消隐藏选择,那么在 xib 中有一个属性可以为您提供此功能,通过使用它,您可以删除此方法并尝试运行您的代码。请提供您的 xib 或您实现的一些代码的快照,以便更好地说明。

【讨论】:

【参考方案2】:

我想你不会调用委托方法

请将此代码包含到您的 viewDidLoad 方法中

myTableView.delegate=self;
myTableView.dataSource=self;

【讨论】:

它不起作用。就像我说的那样,它有效,但不是正确的。我必须单击 3 秒才能调用方法 didSelectRowAtIndex。 请正确查看问题。已经在 StoryBoard 中建立了连接。 您只需确保您正在调用的 didSelectRowAtIndexPath ....在我犯错之前,我调用了 didDeselectRowAtIndexPath 方法..请确保也 这是个好方法。我认为这不是方法错误的问题,而是设置的问题。事实上它可以工作,但不是正常的。我只希望当我在行上单击一次时它可以工作。

以上是关于tableView didSelectRowAtIndexPath 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

SFSafariViewController 在安装 YouTube 时请求打开 YouTube 应用

如何使用tableview外的按钮将tableview移动到新的tableview

tableView(cellForRowAtIndexPath) 与 tableView.cellForRowAtIndexPath()?

TableView里面的tableview cell swift 3

将 tapGesture 添加到 tableView 则无法执行 tableView(_ tableView: UITableView, didSelectRowAt indexPath: Index

Swift:tableView 行的高度,其 tableView 单元格具有动态行数的嵌套 tableView