2012-10-01 38 views
1

我用IB在Storyboard中创建了UITableViewController。我将UITableview'sdelegate设置为其控制器。 UITableView有静态单元格。只有2个部分。第一部分有3个不可选择的行。最后一节有1行可供选择。我只在IB中设置了这一点。UITableViewDelegate方法没有被调用

然后我在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的网点检查员的代表设置。一切安好!

+0

你确定你实现-tableView:didSelectRowAtIndexPath方法:不-tableView:didDeslectRowAtIndexPath:? – Moxy

+0

@Moxy是的。我做到了。 – Anand

+0

您是否在.h文件中添加了? – AndyDev

回答

0

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

见,如果你在控制台中得到NULL。

您知道dataSource已正确连接,否则您不会看到任何单元格。这是你的代表连接=)

1

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

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

我更喜欢使用tblView财产的名字,因为你会看到警告的tableView隐藏实例。希望这个帮助。

相关问题