2013-07-15 11 views
5

Cześć, gdy w trybie edycji widoku tabeli, funkcja didselectrowatindex nie jest wywoływana. Oto mój kod. Jakikolwiek błąd w moim kodzie?ios didselectrowatindexpath nie jest wywoływana, gdy w trybie edycji

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (self.tableView.editing == YES) { 
     NSLog(@"now in editing mode"); 
    } 
    else { 
     NSLog(@"now in normal mode"); 
    } 
} 

- (void)setEditing:(BOOL)editing animated:(BOOL)animated { 
    [super setEditing:editing animated:animated]; 
    // must be called first according to Apple docs 
    [self.tableView setEditing:editing animated:animated]; 
} 

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 
    // Return NO if you do not want the specified item to be editable. 
    return YES; 
} 

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return UITableViewCellEditingStyleNone; 
} 

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { 
    return NO; 
} 

Proszę help.Thanks

+0

można dodać delegata tableView – Jitendra

+0

sprawdzić, czy ustawiony delegata UITableView do siebie (lub klasy, która ma didselectrowatindexpath realizację funkcji) .. – Suryakant

Odpowiedz

16

Musisz ustawić tę właściwość allowsSelectionDuringEditing z UITableView do TRUE aby móc wybrać wiersz podczas trybu Editing. Tak powinno być

self.tableView.allowsSelectionDuringEditing=YES; 
+0

z iOS 9, didSelectRowAtIndexPath nigdy nie jest wywoływana w trybie edycji nawet z allowsSelectionDuringEditing = TAK. Zamiast tego możesz zaimplementować willSelectRowAtIndexPath - która zostanie wywołana, jeśli ustawisz allowSelectionDuringEditing = YES. – lifjoy

1

nie wierzę, to jest domyślnie włączona, ale trzeba określić, co powinno być dozwolone wybór podczas edycji, podobnie jak w przypadku wyboru zakaz edycji. Użyj jednej z dwóch poniższych linii w zależności od potrzeb.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.tableView setAllowsMultipleSelectionDuringEditing:YES]; 
    [self.tableView setAllowsSelectionDuringEditing:YES]; 
} 
Powiązane problemy