如何避免 NavigationBar 中的两个 barButtons 可以同时按下?

Posted

技术标签:

【中文标题】如何避免 NavigationBar 中的两个 barButtons 可以同时按下?【英文标题】:How to avoid two barButtons in NavigationBar could be pressed in same time? 【发布时间】:2013-06-04 02:30:10 【问题描述】:

我在我的应用中发现了这个问题。

“BackBarButton”和“rightBarButton”可以同时被触摸,然后两个动作都会被调用。

我知道UIView中有“exclusiveTouch”可以解决这类问题。但是UIBarButton不是它的子类。

谁能帮帮我?? 谢谢。

【问题讨论】:

您能否分享更多信息,说明您为什么要确保不能同时按下 2 条按钮? 99.999% 的用户会选择其中一个。不能同时进行 @SanjitSaluja 这是一个测试用例。在这种情况下,我的应用程序崩溃了。所以我想修复它。 【参考方案1】:

如果您正在寻找一个干净且通用的案例答案,我没有。

不过,一个不太优雅的解决方案应该适用于您的应用。只需在您的班级中创建一个BOOL 标志,并在您积极响应您的UIBarButton 按下之一时设置它,然后在您完成响应该按钮按下时清除它。在您的每个回复中,只需检查标志。

所以,在你的类的初始化中:isBusy = NO;

然后在每个选择器中:

if (!isBusy) 
   isBusy = YES;
   //Do yer stuff for this selector
   isBusy = NO;

【讨论】:

以上是关于如何避免 NavigationBar 中的两个 barButtons 可以同时按下?的主要内容,如果未能解决你的问题,请参考以下文章

TabBar 和 NavigationBar 的问题

iOS 8 中的 NavigationBar 栏、色调和标题文本颜色

设置两个 barItem 属性后,是啥导致 navigationBar 变成白色朦胧颜色?

如何在唯一键上加入 DataFrame 时避免洗牌?

iOS:如何在导航栏中与 NavigationBar Title 平行放置一个按钮?

关于使用navigationController,前后2个视图控制器navigationBar隐藏属性不同,导致右滑手势失效问题的解决办法