У меня есть UITableViewController, который запускает UIViewController, и я хотел бы уловить всякий раз, когда в дочернем контроллере будет нажата кнопка «Назад», которая является классом, который происходит из «UIViewController». Я могу изменить заголовок кнопки «Назад», но установить целевые значения &, когда настройка backBarButtonItem кажется проигнорированной. Каков способ получения какого-либо уведомления о том, что кнопка «Назад» была нажата?Как заблокировать событие кнопки «Назад»
- (void)showDetailView
{
// How I'm creating & showing the detail controller
MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyDetailView" bundle:nil];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Pages"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(handleBack:)];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];
[self.navigationController pushViewController:controller animated:animated];
[controller release];
}
- (void)handleBack:(id)sender
{
// not reaching here
NSLog(@"handleBack event reached");
}
Для людей, которые ищут эффективное решение iOS 5+: http: // stackoverflow.com/a/13370744/1072846 – Eric