导航项目的点击或触摸事件有时不会被触发

时间:2015-07-16 04:11:30

标签: ios events uinavigationitem

导航栏中的大部分时间导航项都能正常工作。 在用户点击屏幕之前隐藏导航栏 导航栏使用[[self navigationContoller] setNavigationBarHidden:YES/NO animated:YES]移动。

但是,有时导航项目不会触发内部事件 这是其中一个的片段 [self.button addTarget:self action:@selector(someFunc) forControlEvents:UIControlEventTouchUpInside]

按钮动画淡出,就像触摸得很好,但事件不会被触发 但是当我通过点击屏幕使导航栏隐藏并再次出现时,导航项目再次正常工作。

问题是什么?我完全不知道。
在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我使用UITapGestureRecognizerUIImageView解决了这个问题 我使用UIBarButtonItemUIBarButtonItem将默认UIImageView和自定义UITapGestureRecognizer添加到navigationBar进行测试。然后,当我再次遇到问题时,默认UIBarButtonItem没有响应,但自定义UIBarButtonItem工作正常。

这是我的示例代码。

UIImage buttonImage = [UIImage imageNamed:@"buttonImage" inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil];
UIImageView buttonImageView = [[UIImageView alloc] initWithImage:buttonImage];
UITapGestureRecognizer buttonTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(targetFunction)];
[buttonImageView addGestureRecognizer:buttonTapGesture];
UIBarButtonItem *bbiButton = [[UIBarButtonItem alloc] initWithCustomView:buttonImageView];