我使用Xcode9 Beta6来构建项目,动作在iOS10设备上被正确调用,但是它不能在iOS11设备上工作。
在我的项目中,有一些顶部有UIToolBar的viewControllers,toolBar包含一些UIBarButtonItems。
有一个这样的viewController,当我点击UIBarButtonItem时,它的UIBarButtonItem操作不会被调用。我可以看到点击动画(图标先变暗,松开手指后恢复正常)
在viewDidLoad的末尾,我打印了toolbar.items的信息,以指示目标操作已正确设置。
发布于 2018-03-15 00:59:12
在我的示例中,我设置了按钮并将其实例化为vc的属性。
class myVC: UIViewController {
let closeBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(close(_:)))
}如果我把它移到ViewDidLoad,问题就解决了
class myVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let closeBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(close(_:)))
}}
发布于 2017-09-06 22:40:37
我通过从视图中删除当前的手势识别器并添加一个新的手势识别器解决了这个问题。然后我打开视图的连接检查器,将gestureRecognizer连接添加到我的手势识别器中。
发布于 2017-09-19 01:23:17
苹果公司已经确认了这一缺陷。我的临时解决方案是通过移除重叠区域来更改手势识别器区域,这样点击手势就不会阻止UIBarButtonItem上的点击事件。
https://stackoverflow.com/questions/45928626
复制相似问题