iphone - iphone 应用程序中的后退导航

标签 iphone objective-c xcode uinavigationcontroller back-button

有什么方法可以在我的 iPhone 应用程序中按下后退按钮时捕获事件?现在,我正在使用一个带有名为“返回”的图像的按钮,并为其定义操作。

我的客户端需要默认后退按钮指向上一个屏幕,因此根据点击事件我应该能够让它指向特定屏幕以便显示该屏幕的标题。

简而言之,我需要后退按钮来显示我需要的标题,这可能吗?

提前致谢。

最佳答案

如果处理 – navigationBar:didPopItem: 消息,

UINavigationBarDelegate 可能是最接近检测按钮是否已被按下的方法。

这将在按下后退按钮或您的代码从导航 Controller 堆栈本身弹出 View 时调用。如果您的代码手动弹出 View ,那么设置一个标志来指示您的代码何时启动弹出应该很简单,因此您可以确定后退按钮何时被点击

在您的 UINavigationBarDelegate 实现中创建一个 bool 属性,例如 poppedInCode,您在代码执行 pop 之前将其设置为 true 并像这样实现委托(delegate):

- (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;
}

这优于当前接受的答案,因为它不需要子类化组件,Apple 的文档说您不应该子类化。它还保留了内置后退按钮的所有行为,您无需重写它。

关于iphone - iphone 应用程序中的后退导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595621/

相关文章:

ios - 快速函数调用中是否有必需的参数顺序

iPhone - 如何获取用户的日期格式

iphone - 安全地删除带有标签的 subview

ios - 更新到 XCode 8 后 iPad 上的应用程序崩溃

ios - viewDidAppear 选项卡切换 vs nav pop

ios - 在 map 标注气泡中加载远程图像时出现性能问题

iphone - 从 subview 中删除所有 UIButton

iphone - 如何在 iphone 中检测麦克风的打击而不是语音?

ios - 如何防止 UITabBar 展开转场?

ios - 找不到迦太基图像 Xcode 7 Carthage 0.8.0