Лучший способ «обнаружить, когда нажата кнопка« Назад »», состоит в том, чтобы переопределить viewWillDisappear
примерно так:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if (!isPushing) {
// Apply your changes here
}
}
Булево значение isPushing
будет тем, которое вы определяете сами, и вы устанавливаете его в True только в тех местах, где вы нажимаете другой контроллер самостоятельно (если вы делаете ...), что позволяет вам различать viewWillDisappear
вызывается потому, что вы сами запускаете новый контроллер, а не потому, что была нажата кнопка «Назад».
Обычно вы сами помещаете другой контроллер в контроллер стола следующим образом:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Example of pushing a new controller onto the navigation stack yourself...
isPushing = YES; // You have to set that boolean here...
[self.navigationController pushViewController:myNewController animated:YES];
}