В моем UIViewController
у меня есть UINavigationController
с кнопкой возврата по умолчанию. Когда пользователь нажимает кнопку «Назад», должно появиться предупреждающее сообщение: «Вы действительно хотите вернуться?». Я знаю, что невозможно перехватить событие кнопки возврата. Возможно только использование viewWillDisappear
и установка флага:
- (void)viewWillDisappear:(BOOL)animated {
if (backBtnPressed) {
UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Question" message:@"Do you really want to go back?" delegate:self cancelButtonTitle:@"No" otherButtonTitles: @"Yes", nil] autorelease];
[alert show];
}
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0) {
// don't go back!
// cancel the back button event
}
else if (buttonIndex == 1) {
// go back
}
}
Но с этим кодом у меня нет шансов! Я не могу остановить событие кнопки "Назад", не так ли? не так ли?
Должен ли я написать собственную кнопку возврата и установить ее как leftBarButtonItem
? Или есть у кого отличная идея? : -)
Спасибо за вашу помощь!