didSelectRowAtIndexPath未被调用。 UITableViewController子类

时间:2011-10-17 13:33:11

标签: iphone objective-c ios

以OO方式尝试更多编程。

注:

似乎问题与在另一个UIScrollView上安装UITableView(这是一种scrollview)有关。试图弄清楚如何使这项工作。

所以我创建了一个UITableViewController子类,并将其作为Mainview类中的对象添加。

@interface NRTableVC : UITableViewController <UITableViewDelegate, UITableViewDataSource>
{
      NSArray * tableLabelsArray;
}
@end

表格滚动并显示OK。

但我的

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"Did select row");
}

方法永远不会被调用。

在我的Mainview类中,我使用它如下

    RTable = [[[NRTableVC alloc] initWithStyle:UITableViewStylePlain]autorelease];
[scrollview addSubview:RTable.view];

我想知道所以我需要以某种方式将自己设置为代表或类似的东西。

任何人都可以给我一些关于错误的提示吗?

非常感谢, 代码

3 个答案:

答案 0 :(得分:1)

我通常做的是,在View中我希望tableview创建一个实例

我在ViewDidLoad或LoadView方法

中执行此操作
UITableView *tableView = [UITableView alloc] init...
tableView.delegate = self;
tableView.datasource = self;

然后我将其添加为当前视图的子视图。

这意味着您的MainView需要实现tableView数据源和委托方法。

编辑:

如果使用界面构建器,请记住拖动数据源并委托给文件所有者

答案 1 :(得分:1)

您是否为tableview设置了委托?如果没有委托设置,它将不会调用任何委托方法。

答案 2 :(得分:1)

是否保留RTable?您正在自动释放它,但是您没有显示任何表明它被保留在任何地方的代码。

相关问题