我是iOS的新手。
我想使用今天的扩展程序。我创建了今天的扩展并添加了uitableview它工作正常。但是当我尝试选择行然后委托方法 DidSelectRowAtIndexPath 不会调用。
在我的代码中,有3种uitableview委托和数据源方法。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"];
}
cell.textLabel.text = [NSString stringWithFormat:@"Hello World%li",(long)indexPath.row];
return cell;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
以上数据源方法正确调用
但是选择行后没有选择行方法。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"row Selected");
}
感谢您的帮助。
答案 0 :(得分:1)
您提到调用数据源方法。但tableView: didSelectRowAtIndexPath:
是UITableViewDelegate
方法,而不是数据源方法。看起来可能没有设置表格视图的delegate
属性。
答案 1 :(得分:0)
在您的表中实现UITableViewDelegate协议实现与UITableViewDataSource相同的View类。 didSelectRowAtIndexPath 将正常工作,即在选择表格中的行时将被调用。