【发布时间】:2013-09-30 00:25:17
【问题描述】:
所以,我在UIViewController 中添加了UITableViewController 和UITableViewCell,而cellForRowAtIndexPath 委托方法有效,didSelectRowAtIndexPath 无效。有人有什么想法吗?
编辑 2:
UITableView的委托设置为UIViewController。编辑 3:我在另一个 Stack 问题 here 上找到了我的问题的答案。基本上我的
[self view]上有一个UITap...,它阻止了didSelectRow...。我不知道为什么 tap 会阻塞委托方法,我也不知道如何让 tap 和 table 同时工作。编辑:让我烦恼的部分是我已经在早期的应用程序上得到了这个精确的设置。所以这意味着我在路上的某个地方错过了一步。问题是,我已经梳理了所有步骤,并将以前的应用程序与当前应用程序进行了比较,但我真的不知道我错过了什么。
我在两种委托方法中都添加了日志记录,当一个输出时,另一个不输出。
ViewController.h
#import "...TableViewCell.h"
...
UITableViewDataSource,
UITableViewDelegate
...
ViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"cellForRowAtIndexPath");
...
return Cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"didSelectRowAtIndexPath");
}
...TableViewCell.h(内容不重要)
...TableViewCell.m(内容不重要)
【问题讨论】:
-
由于调用了
cellForRow...方法,我们知道表的dataSource已设置。您是否还设置了表格的delegate属性?不设置didSelectRow...方法不会被调用。 -
嗨 rmaddy,是的,
UITableView委托属性设置为UIViewController。 *编辑:我不小心说UITableViewController,但我的意思是说UIViewController。 -
非常仔细地检查您的拼写是否正确,大小写是否正确。
-
嗨 Hot Licks,我只是仔细检查了一遍(永远无法确定),它的拼写完全正确,让我在这里复制/粘贴:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath。
标签: ios uitableview didselectrowatindexpath