栏按钮项:在视图COntroller中未触发IBAction

时间:2014-01-24 23:46:19

标签: objective-c uibarbuttonitem ibaction

在拆分视图控制器的详细视图控制器的底部,我在故事板中添加了一个工具栏。我在此工具栏中添加了三个条形按钮项。每个Bar Button Item都链接到Details View Controller的私有接口中的IBOutlet,并且还连接到同一控制器中的IBAction实现,例如:- (IBAction)shouldPresentView:(UIBarButtonItem *)sender

主视图包含:

  • Webview。
  • 屏幕底部,webview下方的小型矩形视图,以编程方式创建和添加,并包含各种按钮。所有按钮都可以使用。

当触摸任何Bar Button项时,该按钮是临时突出显示的,但是没有触发任何IBAction方法(从不执行每个方法中的NSLog()语句)。

在搜索和阅读相同的主题后,我经历了几个解决方案:

  • 我在Details View Controller的View Did Load方法中手动添加了Details View Controller作为工具栏的委托。
  • 我清空了产品派生数据的缓存。
  • 我检查过每个IBOutlet都有一个地址而且不是零。
  • 我尝试在每个条形按钮项的View Did Load方法中手动添加动作SEL。
  • 我删除了矩形底部视图,以确保它不会干扰响应者链。
  • 我在导航栏中添加了一个Bar Button Item来检查是否出现同样的问题:no,Bar Button Item触发IBAction方法。

任何帮助都将不胜感激。


使用Xcode 5.0.2中的iOS 7 SDK进行开发

1 个答案:

答案 0 :(得分:3)

问题来自Tap Gesture,我添加到主视图以收集Web视图上的触摸。因此,在到达UIButtonBarItem之前,可能在主视图的某处捕获了Bar Button Items上的触摸。我将Tap Gesture的目标更改为Web视图 - 更合乎逻辑 - 问题已经解决。