Ho un UITableViewController che lancia un UIViewController e vorrei intercettare ogni volta che viene premuto il pulsante Indietro nel controller figlio, che è la classe che deriva da "UIViewController". Posso cambiare il titolo del pulsante Indietro, ma impostare i valori di azione target & quando si imposta backBarButtonItem sembra essere ignorato. Qual è un modo per ricevere una sorta di notifica che il pulsante Indietro è stato toccato?Come intercettare l'evento del pulsante Indietro
- (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");
}
Per le persone che cercano una soluzione efficiente iOS 5+: http: // stackoverflow.it/a/13370744/1072846 – Eric