2011-11-16 45 views
0

所以我以前使用过很多次的UITableView,但我收到了一些不寻常的行为,我试图缩小范围。在UIPopoverController中,我介绍了这个UITableView。该应用程序是为iPad。 UIViewController的.xib是一个iPhone。顾问是这么做的。我不确定他们是否做到了这一点,因为它与传统的iPad尺寸的.xib相比要小一些。didSelectRowAtIndexPath选择不同的行时

我的viewcontroller子类从.h文件实现UITableViewDelegate和UITableViewDataSource。

@property (nonatomic, retain) IBOutlet UITableView *TargetTableView; 

我检查的.xib和UITableView中的文件的所有者是我sublcass,数据源和委托也连接在IB。

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath { 

    if (tableView == _targetTableView) { 
     NSUInteger row = [indexPath row]; 
     NSLog(@"row: %i", row); 
    } 

我第一次看到,当我在tableView中选择第一行时,没有任何记录到控制台。突出显示的是第一行。然后,当我选择下一行时,我将“row:0”记录到控制台。它似乎只在我选择下一行后才会记录。我不知道这是否是以前见过的事情,我错过了一些愚蠢的事情,因为我已经在无问题之前创建了其他UITableViews。谢谢。

+0

如果删除'if'语句会发生什么? –

回答

2

您已执行didDeselectRowAtIndexPath而不是didSelectRowAtIndexPath

+0

谢谢你看到我的大脑放屁! – Crystal

0

您应该检查并记录indexPath.section以及排。