各セルにUITextfieldがあり、現在の行番号と同じタグを割り当てています。
cell.textfield.tag = indexPath.row;
ユーザーがテキストフィールドの編集を終了するときにindexpath.rowが必要です。
-(void) textFieldDidEndEditing:(UITextField *)textField{
CustomCell *cell = (CustomCell *) [[textField superview]superview];
if([cell isKindOfClass:[UITableViewCell class]]){
//NSIndexPath *indexPath = [Table indexPathForCell:cell];
int row = textField.tag;
NSLog(@"indexpath: %d",row);
NSString *str = [datasource objectAtIndex:row]; //get exception here
.............. }
ここで直面している問題は、を使用して行を削除し、deleteRowsAtIndexPaths
最後のセルの編集を終了すると、データソースにそのインデックスの要素が含まれていないため、間違ったタグ番号を取得することです。さらに、indexPathForCell:
テキストフィールドが編集されているセルが画面から消えると、nullが返されるため、使用できません。
正しいタグ番号を取得するにはどうすればよいですか?テーブルにはアニメーションがないため、テーブルをリロードしたくありません。何が代替できるのでしょうか?どんな提案でも大歓迎です。ありがとう。