Iphone Tableview Измените на другое представление при редактировании - PullRequest
0 голосов
/ 02 ноября 2009

У меня есть TableView, который я хочу изменить на другое представление (View1) для редактирования данных для этой строки, когда редактирование имеет значение true. Когда редактирование не соответствует действительности, я использую didSelectRowAtIndexPath, чтобы перейти к другому представлению (View2), загружающему информацию из выбранной строки.

Примером этого является то, что если вы переходите к встроенным будильникам выбора часов, выбираете редактирование, затем выбираете будильник (при условии, что у вас есть хотя бы один), после чего вы переходите на экран редактирования будильника, но только если вы находитесь в режиме редактирования.

Поэтому мой вопрос заключается в том, как мне воспроизвести эту функцию во время редактирования.

Ответы [ 3 ]

1 голос
/ 02 ноября 2009

В вашем UITableViewDelegate есть необязательный метод:

tableView:willBeginEditingRowAtIndexPath:

Этот метод уведомляет вас, только если пользователь проводит ячейку. Чтобы узнать, что вы находитесь в режиме редактирования любым другим способом (например, нажатием кнопки), вы можете использовать:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"Editing");
    isEditing = YES;        

    return UITableViewCellEditingStyleDelete;
}

Обратите внимание, что вы должны вернуть UITableViewCellEditingStyle, в большинстве случаев это будет UITableViewCellEditingStyleDelete. Также обратите внимание, что это вызывается для каждой ячейки, поэтому, если вы хотите проверить, находитесь ли вы в режиме редактирования (в отличие от уведомления), вы можете использовать:

[tableView isEditing]
0 голосов
/ 02 ноября 2009

Поскольку вы знаете, находитесь ли вы в режиме редактирования, UITableView имеет свойство editing, чтобы сделать это, а также соответствующий анимированный сеттер . (Система также переключит вашу кнопку Edit / Done в соответствии с этим состоянием, если вы используете правильный тип кнопки.)

0 голосов
/ 02 ноября 2009

Вы можете отслеживать, находитесь ли вы в данный момент в режиме редактирования, нажав кнопку редактирования, вы перейдете в режим редактирования, щелчок по отмене выведет вас из режима редактирования.

При входе в режим редактирования нажмите другой элемент навигации на панели навигации с помощью кнопки отмены, а при выходе из режима редактирования нажмите элемент навигации.

Ячейки могут отображаться с различным содержанием в зависимости от того, находитесь ли вы в режиме редактирования или нет. При включении или выходе из режима редактирования перезагрузите данные таблицы, появится другое отображение.

didSelectRowAtIndexPath может иметь различное поведение в зависимости от того, находитесь ли вы в режиме редактирования. Если щелкнуть ячейку в режиме редактирования, откройте представление редактирования, если не в режиме редактирования, измените на View2.

...