我使用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中仔细检查了委托设置。一切都很好!
答案 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已正确连接,否则您将看不到任何单元格。它必须是你的委托连接=)