Nar*_*ddy 3 iphone xcode objective-c back-button uinavigationcontroller
当我按下iPhone应用程序中的后退按钮时,有什么方法可以捕获事件吗?现在我正在使用一个名为Back的图像按钮并为其定义动作.
我的客户端需要指向前一个屏幕的默认后退按钮,因此基于点击事件我应该能够指向特定屏幕,以便显示该屏幕的标题.
总之,我需要后退按钮来显示我需要的标题,是否可能?
提前致谢.
UINavigationBarDelegate如果处理– navigationBar:didPopItem:消息,可能是最接近检测按钮是否被按下的距离.
当按下后退按钮或代码弹出导航控制器堆栈本身的视图时,将调用此方法.如果您的代码是手动弹出视图,那么设置一个标志来指示代码何时启动弹出窗口应该是微不足道的,因此您可以确定何时触发后退按钮
在你的UINavigationBarDelegate实现中创建一个布尔属性,例如poppedInCode你在代码执行pop之前设置为true并实现委托,如:
- (void) navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item
{
if (!self.poppedInCode) {
// back button was tapped
}
// set to false ready for the next pop
self.poppedInCode = FALSE;
}
Run Code Online (Sandbox Code Playgroud)
这比当前接受的答案更有优势,因为它不需要对Apple的文档表明您不应该进行子类化的组件的子类化.它还保留了内置后退按钮的所有行为,而无需重写它.