有没有办法找出是否针对特定视图点击了后退按钮(导航栏)?如果是的话怎么样?
答案 0 :(得分:0)
首先,我自己没有尝试过。 我不知道如何拦截按钮上的点击。 “可能”的工作原理如下:有UINavigationBarDelegate,其中包含navigationBar:shouldPopItem:event。在从navigationBar的堆栈中删除navigationItem之前调用此事件,因此如果您处理此事件,您可能可以执行任何要归档的操作。
答案 1 :(得分:0)
“之前处理事件”建议您在用户离开视图之前清理或保存状态。在这种情况下,我将使用viewWillDisappear:或viewDidDisappear:。如果您需要区分导航和导航“前进”(例如,推送VC或呈现模态VC),您可能能够执行以下操作:
-(void)viewDidDisappear:(BOOL)animated
{
if (!self.parentViewController)
{
// back button pressed/modal VC dismissed/etc, hopefully
}
}
我没有对此进行过测试,但我的理解是,在改变VC层次结构之前调用“Will”方法,然后调用“Did”方法。
如果你正在保存状态,你还应该处理UIApplicationWillEnterBackgroundNotification。