Чувствую, что я здесь немного псих. У меня есть подробный вид с несколькими автономными UITextField
s, несколькими UITextFields
в UITAbleViewCell
s и одним единственным UITAbleViewCell
, который будет использоваться для хранения заметок, если таковые имеются. Я хочу, чтобы эта ячейка была выбрана, когда я в режиме редактирования. Когда я не в режиме редактирования, я не хочу его выбирать. Выбор ячейки (в режиме редактирования) приведет к запуску метода, который запустит новое представление. Я знаю, что это очень легко, но я чего-то не хватает.
Вот текущие методы выбора, которые я использую:
-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.editing) {
NSLog(@"Returning nil, not in edit mode");
return nil;
}
NSLog(@"Cell will be selected, not in edit mode");
if (indexPath.section == 0) {
NSLog(@"Comments cell will be selected");
return indexPath;
}
return nil;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.editing) {
NSLog(@"Not in edit mode. Should not have made it this far.");
return;
}
if (indexPath.section == 0)
[self pushCommentsView];
else
return;
}
Моя проблема действительно в 2 раза;
1) Даже когда я не в режиме редактирования, и я знаю, что возвращаю nil
(из-за сообщения NSLog
), я все же могу выбрать строку (она мигает синим цветом). Из моего понимания метода willSelectRowAtIndexPath
этого не должно происходить. Может быть, я ошибаюсь в этом?
2) Когда я вхожу в режим редактирования, я вообще ничего не могу выбрать. метод willSelectRowAtIndexPath
никогда не срабатывает, а также didSelectRowAtIndexPath
. Единственное, что я делаю в методе setEditing
, скрывает кнопку "Назад" при редактировании и назначает firstResponder
на верхний текстовый экран, чтобы всплывать клавиатура. Я подумал, что, возможно, первый ответчик мешал клику (который был бы немым), но даже с тем, что было прокомментировано, я не могу выполнить выбор ячейки во время редактирования.