iPhone: захват события «Назад» - PullRequest
0 голосов
/ 28 февраля 2011

Привет,

У меня есть следующий код для захвата события кнопки назад:

[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStylePlain target:self action:@selector(doLogout:)]];

А вот мой doLogout:

-(void) doLogout:(id)sender{
    NSLog(@"hi");
}

Все компилируется и работает нормально, а текст кнопки «Назад» меняется на «Выход».

Единственная проблема в том, что моя функция doLogout никогда не вызывается !!!

Что я могу сделать? Я застрял на этом уже час ...; (

Большое спасибо заранее,

Ответы [ 3 ]

0 голосов
/ 28 февраля 2011

Вместо того, чтобы пытаться перехватить «событие кнопки назад», почему бы просто не попробовать переопределить UIViewController viewDidUnload?

0 голосов
/ 28 февраля 2011

Вместо установки backBarButtonItem на контроллере вида сверху, вы можете установить leftBarButtonItem на дочернем контроллере вида.Это может быть любой элемент кнопки произвольной панели, и все сообщения о действиях должны доставляться как обычно.Поскольку это происходит с помощью кнопки «Назад», вы должны убедиться, что вы вручную вставили дочерний контроллер в один из методов действия.

0 голосов
/ 28 февраля 2011

Официальный документ:

Когда этот элемент является задним элементом на панели навигации - когда это следующий элемент под верхним элементом - он может быть представлен в виде кнопки возврата на панели навигации.Используйте это свойство, чтобы указать кнопку возврата. Цель и действие элемента кнопки задней панели, который вы установили, должны быть равны нулю. Значением по умолчанию является элемент кнопки панели, отображающий название элемента навигации.

...