如何禁用当前视图中显示的backBarButtonItem?

时间:2012-02-22 18:53:42

标签: iphone objective-c uiviewcontroller uinavigationcontroller

将视图推送到UINavigationController堆栈并显示后,我需要在某些情况下禁用“后退”按钮,例如,在该屏幕上编辑数据时。

以下隐藏后退按钮

self.navigationItem.hidesBackButton=YES;

但我需要禁用它。

关于如何隐藏它或建议不首先显示它,还有其他几个答案,但这些不是我需要实现的。

3 个答案:

答案 0 :(得分:0)

您可以为navigationController的导航栏委托实现一种委托方法。看一下[UINavigationBarDelegate navigationBar:shouldPopItem:]方法。

从此方法返回YES或NO将启用或禁用后退按钮。

答案 1 :(得分:0)

你可以实现一个leftBarButtonItem(不可见但没有效果) 将其添加到当前视图中(self.navigationItem.leftBarButtonItem) 并删除它以访问你的backButton。

答案 2 :(得分:0)

如果你很好,整个导航栏被禁用,一个简单的解决方案是

self.navigationController.navigationBar.userInteractionEnabled = NO;

当然,如果您想要保持其他条形按钮,则此功能无效。