iPhone 5.0和5.1模拟器没有调用IBActions?

时间:2012-12-29 04:34:37

标签: iphone ios xcode

我有一个目标为iOS 5.0的应用。不幸的是,我不再使用iOS 5的任何测试设备。

我希望能够使用iOS 5.0和5.1模拟器进行基本调试,但由于某些原因,我的IBAction未在这些模拟器上调用。

更多信息:

  • Xcode版本为4.5.2

  • 所有模拟器都是最新的(没有待定的更新/下载)

  • 我们确实有使用iOS 5和5.1的客户,点击按钮时没有任何问题(或者至少我们没有从他们那里收到任何关于此类的报告;)

  • 在iPhone 6.0模拟器上,一切都按预期工作(非常确定所有IBActions都已正确连接)

这些模拟器是否只是非常错误(这是一个已知的问题)?让其他人遇到这个问题并知道修复吗?

3 个答案:

答案 0 :(得分:2)

最可能的问题我看到了..

  • 可能是您没有在.h文件中定义IBAction方法。
  • 可能是您在一个IBAction UIButton上连接两个TouchUpInside
  • 您还可以尝试从simulatore clear xcode卸载app,而不是解决您的问题。
  • 重置模拟器包含。
  • 检查是Xcode的任何更新,然后您尝试运行您的应用,然后您就有了解决方案。

我正在进行相同的配置,我没有像你这样的问题..

答案 1 :(得分:2)

事实证明UITapGesture上的self.view正在捕捉触摸并且没有转发到子视图......出于某种原因,这种行为在iOS 6和iOS 5模拟器中似乎有所不同。 ..用户要小心......

答案 2 :(得分:0)

使用UIGestureRecognizerDelegate可以避免在selectedView上影响gestureRecognizer:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)recognizer shouldReceiveTouch:(UITouch *)touch {
    UIView *selectedView = self.view;

    CGPoint point = [touch locationInView:self.view.superview];
    if (CGRectContainsPoint(selectedView.frame, point)) {
        return NO;
    }
    else {
        return YES;
    }
}