导航栏中的大部分时间导航项都能正常工作。
在用户点击屏幕之前隐藏导航栏
导航栏使用[[self navigationContoller] setNavigationBarHidden:YES/NO animated:YES]
移动。
但是,有时导航项目不会触发内部事件
这是其中一个的片段
[self.button addTarget:self action:@selector(someFunc) forControlEvents:UIControlEventTouchUpInside]
按钮动画淡出,就像触摸得很好,但事件不会被触发
但是当我通过点击屏幕使导航栏隐藏并再次出现时,导航项目再次正常工作。
问题是什么?我完全不知道。
在此先感谢您的帮助。
答案 0 :(得分:0)
我使用UITapGestureRecognizer
和UIImageView
解决了这个问题
我使用UIBarButtonItem
和UIBarButtonItem
将默认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];