我发现“检测何时按下后退按钮”的最佳方法是重新定义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];
}