UITableViewDelegate方法没有被调用

时间:2012-10-01 13:33:22

标签: ios cocoa-touch uitableview

我使用IB在Storyboard中创建UITableViewController。我将UITableview's delegate设置为其控制器。 UITableView有静态单元格。只有2个部分。第一部分有3个不可选择的行。最后一节有1行可选。我只在IB中设置了这一切。

然后我在UITableViewController中实现了这个方法。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"SELECTED");

    if (indexPath.section == 1 && indexPath.row == 0) {
        //login and report the result
        [self login];
    }
}

当我选择第二部分中的唯一行时,不会调用上述方法。什么可能出错。我已经在UITableView的outlet inspector中仔细检查了委托设置。一切都很好!

2 个答案:

答案 0 :(得分:1)

这样做: 控制将tableView从Storyboard拖到viewcontroller .h文件,为ex创建@property。的tableView。再次添加到.h文件。然后在.m文件中 viewDidLoad写这个:

    -(void)viewDidLoad{
       //your other code
       self.tableView.delegate = self;
       self.tableView.dataSource = self;
       //other code ...
     }

我更喜欢使用tblView作为属性名,因为你会看到tableView隐藏实例的警告。希望这有帮助。

答案 1 :(得分:0)

您是否在控制台中看到了NSLog语句?在viewDidAppear,NSLog(@"Delegate: %@",tableView.delegate)

中怎么样

查看你是否在控制台中获得NULL。

您知道dataSource已正确连接,否则您将看不到任何单元格。它必须是你的委托连接=)