Iphone UITableView didSelectRowAtIndexPath:不工作

Iphone UITableView didSelectRowAtIndexPath:不工作,iphone,objective-c,ios,xcode,uitableview,Iphone,Objective C,Ios,Xcode,Uitableview,当我选择表行时,什么也没有发生。当我想将它链接到resultLabel时,它没有转到ContentController,也找不到我在ContentController.h上声明的UILabel - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { ContentController *detailview = [[ContentController all

当我选择表行时,什么也没有发生。当我想将它链接到
resultLabel
时,它没有转到ContentController,也找不到我在ContentController.h上声明的
UILabel

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    ContentController *detailview = [[ContentController alloc] initWithNibName:@"ContentController" bundle:nil];    
    detailview.detailString = [NSString stringWithFormat:@"%d",indexPath.row];
    [self.navigationController pushViewController:detailview animated:YES];     
    [detailview release];
}
内容控制器

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    resultLabel.text = self.detailString;
}

检查控件是否进入didSelectRowAtIndexPath应用断点。如果没有,请检查是否已设置UITableView委托

在ContentController.h中

NSString *detailString;

@property (nonatomic, retain) detailString;
ContentController.m

@synthesize detailString;

在你的课堂上,你有表格视图。将表视图委托和数据源设置为self(在xib中为文件所有者)。

这可能是因为您没有通过以下方式将表视图属性设置为委托和数据源:

tableview.delegate=self;
tableview.datasource=self;
或者在xib中设置其属性是另一个选项

clickable==否 可以是方法
中cellForRowAtIndexPath
的状态:

cell = [self tableCellWithHeight:height clickable:NO withArrowAccessory:NO];

如果clickable==NO
则该单元格永远不会调用
didselectRowatinedexPath
方法。

以下是在interface builder for UITableview中设置数据源和委托的图像 这是以下方法触控触发所必需的

创建单元格时(在CellForRowatineXpath上)应注意:

userInteractionEnabled属性 确定是否可以选择单元格(单击“应”-didSelectRowAtIndexPath将调用)

selectionStyle属性: 确定单击时是否显示选定的回溯视图

cell.selectionStyle = isClickable ? UITableViewCellSelectionStyleBlue : UITableViewCellSelectionStyleNone;

嗯,我有一些不同的场景,我在
UITableView
单元格中有
HJManaged
图像,
HJManaged
图像在其
委托中有自己的点击方法,所以当我点击表视图而不是
didSelectRowAtIndexPath
时,调用
HJManaged
图像的委托点击方法


所以我找到了解决方案,我回到
UITableView
单元格,并取消选中
HJManaged
图像的用户交互启用属性。

另一件要检查的事情是确保原型单元格及其选择模式或选择样式

转到界面生成器>>>右侧的实用程序窗口>>>属性检查器>>>查找选择下拉列表


在我所关注的苹果教程中,它要求您将其设置为“无”,使其看起来像是didSelect的委托没有启动。将它的选择模式设置为“无”,有效地削弱了这种能力。我将此更改为“单一选择”,然后它又重新开始工作。

检查您是否正在实施此方法

- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath: (NSIndexPath *)indexPath
{
     return NO;
}

它将禁用单元格选择

出现这种情况可能是因为您尚未添加表视图委托和数据源。请确保并在视图中添加这两行加载方法

     tableview.delegate=self;
     tableview.datasource=self;

我的情况是我忘记设置tableView的委托属性。也许您应该将tableView委托连接到当前视图控制器。

您需要检查是否已将UITableViewDelegate定义到文件或将tableView委托附加到文件所有者。当前视图控制器是否包含navigationController?您是否基于项目导航?我已将表视图委托附加到文件所有者。我已尝试包含navigationController和不包含navigationController,两者均不起作用。这是一个基于视图的如何设置UITableView委托?tablename.datasource=self;若您使用xib,那个么右键单击表并将一个数据源映射到文件ownertableViewName.delegate=self,然后在@interface MoreRecent:UIViewControllerId中的.h文件中添加UITableViewDelegate。但奇怪的是,我找不到要连接的detailString。请在viewDidLoad中添加:labelName.text=detailString;我同意这一点,似乎没有指派代表
- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath: (NSIndexPath *)indexPath
{
     return NO;
}
     tableview.delegate=self;
     tableview.datasource=self;