Вы можете реализовать метод viewWillDisappear
UIViewController. Это вызывается, когда ваш контроллер собирается уйти (либо потому, что другой был помещен в стек контроллера навигации, либо потому, что была нажата кнопка «назад»).
Чтобы определить, исчезает ли вид из-за нажатия кнопки «Назад», вы можете использовать пользовательский флаг, который вы устанавливаете всякий раз, когда нажимаете новый контроллер на контроллер навигации, как показано ниже
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if (viewPushed) {
viewPushed = NO; // Flag indicates that view disappeared because we pushed another controller onto the navigation controller, we acknowledge it here
} else {
// Here, you know that back button was pressed
}
}
И где бы вы ни нажимали новый контроллер вида, вы должны помнить, чтобы также установить этот флаг ...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
...
viewPushed = YES;
[self.navigationController pushViewController:myNewController animated:YES];
...
}