0

我要撕毁我的头发,因为我想不出为什么会在 5 而不是 6 上发生这种情况的合乎逻辑的原因。所以基本上,我有一个带有导航栏和取消按钮的模态视图(UIBarButtonItem- 没有自定义任何内容它,只是一个标准按钮)在导航栏中。当点击此取消按钮时,我希望模态视图消失。这在 iOS 6 中工作得很好。但对于 iOS 5,它拒绝在我的代码中有它的 3 个地方中的 2 个工作。对我来说奇怪的是它适用于其中一个但不适用于其他两个。

使用情节提要,我右键单击按钮,单击已发送操作下的“选择器”,然后拖动到IBAction视图控制器的 .h 文件中的适当方法。通过 Xcode 中的小闪烁动画成功确认了链接。当我在 iOS 6 上运行应用程序(模拟器或设备无关紧要)时,该方法在按钮点击时成功执行并且我的模式视图被关闭。但是,在 iOS 5 上,甚至从未调用过该方法(我在方法内设置了断点以查看它们是否会被命中)。我什至尝试将我的IBAction方法中的参数从切换idUIBarButtonItem *。不过没有雪茄。

我还尝试以编程方式(在 中viewDidLoad)将取消按钮的操作设置为选择器。我什至将目标设定为 VC。又没有雪茄了。这是我当前设置的屏幕截图:

请注意 IBAction 方法

请注意IBAction方法。

我错过了文档中的一些神奇条款吗?为了让它在 iOS 5 中运行,我需要做一些非常特别的事情吗?这对我来说确实像是一个错误,但我对这些东西还是很陌生,所以我知道什么。

我正在使用 Xcode 4.5.2 和故事板,并针对 iOS 5 和 iOS 6 进行发布。

感谢您的帮助,谢谢。

4

3 回答 3

2

我认为使用GestureRecognizer可能存在问题,请评论该代码并尝试...

于 2012-12-03T02:52:41.753 回答
1

我添加了一个单独UIView的位于我的文本字段和按钮下以及导航栏/标题下方。我以编程方式向其中添加了点击手势,这似乎可以识别我的点击和取消按钮的动作。UIBarButtonItem如果手势在根视图上,我仍然想知道为什么点击手势会吞噬' 的动作。这个问题帮助我弄清楚了这一点。谢谢。

于 2012-12-03T18:00:06.070 回答
0

you can exclude view/control from gesture recognizer using following delegate method.

// UIGestureRecognizerDelegate

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    // exclude your view from gesture recognizer
    if(yourView == touch.view)
    {
        return NO;
    }

    // 
    return YES;
}

于 2012-12-04T01:28:34.420 回答