我似乎无法找到一种方法来检测用户何时back
按下UINavigationController
. 我试过使用UINavigationControllerDelegate
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
我努力了
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if (self.isMovingFromParentViewController) {
NSLog(@"BACK BUTTON WAS PRESSED!!!!!!!!!");
[[[NSManagedObjectContext MR_defaultContext] undoManager] endUndoGrouping];
[[NSManagedObjectContext MR_defaultContext] undo];
}
}
我也试过
- (void)viewDidLoad
{
self.navigationItem.backBarButtonItem.target = self;
self.navigationItem.backBarButtonItem.action = @selector(cancelPressed);
}
- (void)cancelPressed
{
NSLog(@"CANCEL BUTTON WAS PRESSED!!!!!!!!!");
[[[NSManagedObjectContext MR_defaultContext] undoManager] endUndoGrouping];
[[NSManagedObjectContext MR_defaultContext] undo];
}
然而,前 2 个工作得很好,当我按下时Done
我运行一个AFNetworking
呼叫onComplete
,然后我执行一个[[NSNotificationCenter defaultCenter] postNotificationName:]
然后parentViewController
运行一些事情并刷新屏幕并弹出子视图控制器。在这个子视图控制器弹出时,前 2 个也运行。
我提到的最后一个根本不起作用。是否有适当的方法来检查是否back
按下了仅在后退按钮上运行的导航控制器按钮,而不仅仅是在弹出视图控制器时运行?