在Today扩展中添加UITableView

时间:2014-12-29 08:41:21

标签: ios today-extension

我是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");
     }

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您提到调用数据源方法。但tableView: didSelectRowAtIndexPath:UITableViewDelegate方法,而不是数据源方法。看起来可能没有设置表格视图的delegate属性。

答案 1 :(得分:0)

在您的表中实现UITableViewDelegate协议实现与UITableViewDataSource相同的View类。 didSelectRowAtIndexPath 将正常工作,即在选择表格中的行时将被调用。