Переименовать стандартную кнопку «Редактировать» в табличном представлении - PullRequest
2 голосов
/ 07 января 2010

Мне удалось (с большим количеством проб и ошибок), чтобы мое табличное представление обеспечивало только функциональность переупорядочения, т.е. мое табличное представление является редактируемым, но не отображает "значки удаления" и не выравнивает строки при нажатии на редактирование кнопка.

Теперь я хотел бы, чтобы кнопка читала «сортировать» вместо «редактировать».

Я наивно пробовал это:

self.navigationItem.leftBarButtonItem = self.editButtonItem;
self.navigationItem.leftBarButtonItem.title = @"Sort";

, который работает только один раз, то есть он правильно помечен как «Сортировка», после щелчка он переименовывается в «Готово», но затем - как и ожидалось - переименовывается в «Редактировать».

Чтобы это исправить, я развернул свою "собственную" кнопку на панели навигации. Это решение работает - я могу получить кнопку для управления режимом редактирования табличного представления, перезагрузить данные при изменении, переименовать себя и т. Д., Но я не могу заставить его «оставаться выделенным», то есть поведение по умолчанию кнопки «Редактировать» в виде таблицы.

Теперь мой вопрос:

a) Есть ли способ переименовать (и оставить его переименованным, например, с помощью обратного вызова) стандартной кнопки «Изменить»?

или

б) Есть ли способ заставить кнопку вести себя «модально», то есть оставаться выбранной, как стандартная кнопка «Изменить»?

Спасибо за любую вашу идею.

1 Ответ

6 голосов
/ 07 января 2010

Вы можете поместить свои изменения в метод - (void) setEditing:(BOOL)editing animated:(BOOL)animated в вашем контроллере представления.

- (void) setEditing:(BOOL)editing animated:(BOOL)animated {
    //Do super before, it will change the name of the editing button
    [super setEditing:editing animated:animated];

    if (editing) {
      self.navigationItem.leftBarButtonItem.title = @"Done";
      self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleDone;
    }
    else {
      self.navigationItem.leftBarButtonItem.title = @"Sort";
      self.navigationItem.leftBarButtonItem.style = UIBarButtonItemStyleBordered;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...