2009-09-28 90 views
2

當我點擊我的tableview第一小區didSelectRowAtIndexPath不會被觸發......有沒有人似乎這和/或有任何線索,爲什麼出現這種情況?我表格中的所有其他單元格都工作得很好,我在我的代碼中放置了一個斷點didSelectRowAtIndexPath如果第一個單元格被輕敲,應用程序就不會進入該代碼,但是如果任何其他單元格被點擊,該代碼將進入代碼。 下面是一些代碼:當我點擊我的tableview didSelectRowAtIndexPath方法的第一個單元格,則不會觸發

- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSInteger row = 0; 
    return row; 
} 

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSInteger row = [indexPath row]; 
    if (row == 0) 
     return nil; 

    return indexPath; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //NSUInteger row = [indexPath row]; 
    //NSString *rowValue = [poolListData objectAtIndex:row]; 

    int newRow = [indexPath row]; 
    int oldRow = [lastIndexPathForPoolList row]; 

    if (newRow != oldRow) 
    { 
     UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath]; 
     newCell.accessoryType = UITableViewCellAccessoryCheckmark; 

     UITableViewCell *oldCell = [tableView cellForRowAtIndexPath: lastIndexPathForPoolList]; 
     oldCell.accessoryType = UITableViewCellAccessoryNone; 

     lastIndexPathForPoolList = indexPath; 
    } 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

- (NSInteger)tableViewForDelete:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [poolListData count]; 
} 

- (UITableViewCell *)tableViewtableViewForDelete:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    static NSString *DeleteMeCellIdentifier = @"DeleteMeCellIdentifier"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:DeleteMeCellIdentifier]; 
    if (cell == nil) 
    { 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:DeleteMeCellIdentifier] autorelease]; 
    } 

    NSInteger row = [indexPath row]; 
    cell.text = [self.poolListData objectAtIndex:row]; 
    return cell; 
} 

#pragma mark - 
#pragma mark Table View Delegate Methods 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return 50; 
} 

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSUInteger row = [indexPath row]; 
    [self.poolListData removeObjectAtIndex:row]; 
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 

感謝您的時間和任何幫助,您可以給我!

+0

對不起這個爛攤子......我似乎無法獲得正確粘貼的代碼。 – Jeff 2009-09-28 13:58:26

+0

糾正了你。 lastindexpathforpoollist initializerd在哪裏? – ennuikiller 2009-09-28 14:01:50

+0

你設置了tableview.delegate嗎? – CiNN 2009-09-28 14:03:38

回答

3

我認爲你的返回nil將在第一行的willSelectRowForIndexPath。這將阻止該行被選中。

+0

到達那裏!!!我把它拿出來,現在我可以選擇第一行,但只有在我先選擇任何其他行後!謝謝!! – Jeff 2009-09-28 14:32:56

相關問題