创建自定义单元格,现在导航控制器不起作用

时间:2013-07-31 21:00:43

标签: uitableview navigationcontroller custom-cell

所以我正在开发一个简单的应用程序,我遇到了一个小问题。我有一个工作的应用程序,然后我有一个嵌入导航控制器的表视图,当选择一个单元格时,它将移动到下一个视图,其中显示有关所选行的详细信息。我决定创建自己的自定义单元格并将其实现到我的程序中,但现在当单击任何行时,它不会转换到另一个视图。有小费吗?是否有任何方法需要添加到我的自定义单元类中以使其再次与我的导航控制器一起使用?

2 个答案:

答案 0 :(得分:0)

根据您的应用设置方式,您可以尝试以下几种方法。

首先,如果前面的代码有tableView:didSelectRowAtIndexPath:已实现,则需要实现类似的代码来创建详细信息视图。

其次,如果您的应用使用了故事板,则需要从自定义单元格到详细信息视图创建推送/模态segue。

希望有所帮助。

答案 1 :(得分:0)

我也有这个问题:

使用自定义单元格类有三种方法可以解决这个问题。第一个是如果你没有使用故事板,你必须像以前一样实现didSelectRowAtIndexPath并且已经说过了。我想详细说明其他两种方式。

如果您正在使用故事板并且已经为单元格创建了自定义类,则可以:

1)创建.xib文件并将自定义单元格放在那里。

您必须通过cntrl从表视图(无原型单元格)拖动到下一个视图创建一个Segue,并为其指定一个标识符,在本例中为“mySegue”。然后在表视图控制器中实现以下方法。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self performSegueWithIdentifier:@"mySegue" sender:self];
}

2)使用原型单元格。在这种情况下,通过选择表视图并将原型单元格递增为1来添加原型单元格,并为其指定正确的标识符(在下面的示例中,它是CellTableIdentifier,然后根据需要使用标签和所有内容使原型单元格显示。然后你可以像使用xib文件那样为你的单元类创建标签的出口。现在你的代码更干净了,因为你不需要上面的方法。你只需要在所有的例子中进行相同的调用。 cellForRowAtIndexPath方法...我看起来像:

    myTableViewCell *cell = (myTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellTableIdentifier
forIndexPath:indexPath];

然后你只需从原型单元格拖动到下一个视图。