Domanda

Quando si tocca la prima cellula del mio Tableview didSelectRowAtIndexPath non viene attivato ... Qualcuno ha sembrare questo e / o hanno alcun indizio sul motivo per cui questo accade? Tutte le altre cellule nel mio lavoro tavolo proprio bene e ho messo un punto di interruzione nel mio codice in didSelectRowAtIndexPath app non va in quel codice, se si tocca la prima cella, ma entrerò nel codice, se si tocca l'qualsiasi altra cella. Ecco il codice:

    - (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];
}

Grazie per il vostro tempo e tutto l'aiuto che mi può dare!

È stato utile?

Soluzione

Credo che la vostra nil ritorno willSelectRowForIndexPath per la prima riga. Ciò impedirà la riga venga selezionato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top