Пользовательское поведение при нажатии кнопки «назад» на панели навигации - PullRequest
3 голосов
/ 09 февраля 2011

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

Есть ли способ сохранить существующее поведение и внешний вид кнопки «Назад», а также получать информацию при ее нажатии?

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

1 Ответ

3 голосов
/ 09 февраля 2011

Ниже перечислены возможности исчезновения View Controller.

  1. Нажатие на кнопку (кроме backBarButtonItem ).
  2. Нажатие на backBarButtonItem

В любом случае будет вызван viewWillDisappear: метод. Сохраняйте логический флаг . Давайте назовем это isAnyButtonClicked . И установите isAnyButtonClicked = YES при каждом нажатии любой кнопки. Переопределите метод viewWillDisappear: и воспроизведите звук, если не нажата ни одна кнопка (т. Е. isAnyButtonClicked == NO). Вероятно, ваш viewWillDisappear: будет выглядеть,

- (void)viewWillDisappear:(BOOL)animated {

    [super viewWillDisappear:animated];

    if (!isAnyButtonClicked) {

        // Play sound
        isAnyButtonClicked = NO;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...