2013-07-15 19 views
5

こんにちは、テーブルビュー編集モードでは、didselectrowatindexpath関数は呼び出されません。ここに私のコードです。私のコードに間違いがありますか?編集モードのときにios didselectrowatindexpathが呼び出されない

- (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; 
} 
あなたは Editingモードにしながら、行を選択できるように TRUEに、このプロパティ UITableViewallowsSelectionDuringEditingを設定する必要が

くださいhelp.Thanks

+0

あなたがテーブルビュー – Jitendra

+0

あなたが自己にのUITableViewのデリゲートを設定するかどうかをチェックします(またはdidselectrowatindexpath関数の実装を持つクラス)の代理人を追加することができます。.. – Suryakant

答えて

16

。だから、私はそれはあなたが非編集の選択と同じように、デフォルトで有効になっていますが、編集中に許可されるべきかの選択を指定する必要がされて信じていません

self.tableView.allowsSelectionDuringEditing=YES; 
+0

のiOS 9で編集モードにある間、didSelectRowAtIndexPathさえallowsSelectionDuringEditingで呼び出されることはありません=はい。代わりに、allowsSelectionDuringEditing = YESを設定した場合に呼び出されるwillSelectRowAtIndexPath--を実装できます。 – lifjoy

1

でなければなりません。必要なものに応じて、次の2行のいずれかを使用します。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.tableView setAllowsMultipleSelectionDuringEditing:YES]; 
    [self.tableView setAllowsSelectionDuringEditing:YES]; 
}