Не удаляйте первую строку из UITable - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть UITable, заполненный данными Model Core, и я не хочу, чтобы пользователь мог удалить первую строку таблицы, поэтому я делаю это:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

if (editingStyle == UITableViewCellEditingStyleDelete) {
    if (indexPath.row != 0) {
        NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
        [context deleteObject:[self.fetchedResultsController objectAtIndexPath:indexPath]];
        [self saveContext];
    }
    // Delete the managed object for the given index path

}   

}

Я использую это, если (indexPath.row! = 0), это правильно? я пытаюсь, и если я нажимаю удалить в режиме редактирования, ничего не происходит ... это правильно или есть лучший способ?

1 Ответ

1 голос
/ 05 апреля 2011

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

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

Если у вас есть что-то особенное в первой строке, вы можете поместить эти данные / функцию в заголовок таблицы вместо строки.

...