Objective c 未调用iphone应用程序按钮方法

Objective c 未调用iphone应用程序按钮方法,objective-c,ios,event-handling,uibutton,Objective C,Ios,Event Handling,Uibutton,我在一个名为“如何搜索”的应用程序中有一个按钮,参考插座是“btnHelpShow”,它的方法“handleHelpShowButton”附在“内部润色”事件上 该应用程序是一个简单的搜索引擎,用于查找车牌价格: 这是Interface Builder中SearchView.xib文件的层次结构 该视图可以分为4种状态: 1) 等待搜索(如图) 2) 显示帮助屏幕 3) 结果发现 4) 未找到任何结果 状态2和状态4使用一个单独的.xib文件创建一个视图,并将其插入视图堆栈,然后它们都有

我在一个名为“如何搜索”的应用程序中有一个按钮,参考插座是“btnHelpShow”,它的方法“handleHelpShowButton”附在“内部润色”事件上

该应用程序是一个简单的搜索引擎,用于查找车牌价格:

这是Interface Builder中SearchView.xib文件的层次结构

该视图可以分为4种状态:

  • 1) 等待搜索(如图)
  • 2) 显示帮助屏幕
  • 3) 结果发现
  • 4) 未找到任何结果
状态2和状态4使用一个单独的.xib文件创建一个视图,并将其插入视图堆栈,然后它们都有一个按钮隐藏视图并再次显示搜索屏幕

状态3是SearchView.xib(如图所示)中的一个子视图,正如我刚才使用interface builder将该视图拖动到.xib中一样。所以它只是将它的隐藏属性设置为YES/NO

状态3发生后,“如何搜索”按钮停止工作,只有在您选择输入字段并键入另一个号码牌时才会再次工作

我使用了
NSLog(@“按下”)
作为handleHelpShowButton的第一行,在状态3之后不会被记录,这就像按钮被禁用或者有一个不可见的视图坐在它上面阻止我按下它


我不知道从这里往哪里看?有很多代码,所以我不想一次发布所有代码。

可能为状态三创建的子视图与“如何搜索”按钮重叠?在NSLog中检查该子视图的帧

如果这确实是原因,您可以尝试:

[self.view bringSubviewToFront:howToSearchButton];

您可以通过阅读文档了解更多信息。

我怀疑您在(3)中添加的子视图覆盖了按钮并获取了所有事件,即使它是隐藏的。(3)中的视图是否占据了应用程序的整个高度?不是整个高度,而是从标签栏上方一直到顶部的大徽标,所以它确实覆盖了“如何搜索”啊,我刚刚在这个问题中找到了一条评论:指出隐藏的视图仍然接受触摸事件。。。我是否必须将其完全删除,或者我是否可以将视图设置为隐藏或类似于非活动?视图中项目的顺序是否会有所不同?如果我把“如何搜索”按钮放在视图下会有帮助吗?是的,视图顺序肯定会影响触摸顺序。不确定我会把它放在代码中的什么位置。另外,如果视图设置为
hidden=YES
,那么过圈仍然重要吗?事实上,我知道它无论如何都会重叠,这是肯定的。所以这似乎是问题所在。如果创建指向该视图的IVAR,则可以从superview中删除所有子视图,然后将其从superview中删除。事实上,我建议您在创建视图并将其添加为子视图后立即使用此代码。我从不将其添加为子视图,状态3的视图是使用interface builder构建的。它只是一个带有消息和网站链接的视图,里面没有动态内容,所以我用IB构建了它,并在需要时将其设置为hidden=YES/NO。