我使用 Xcode9 Beta6 构建项目,在 iOS10 设备上正确调用了操作,但在 iOS11 设备上不起作用。
在我的项目中,有一些 viewControllers 在顶部有一个 UIToolBar,而 toolBar 包含一些 UIBarButtonItems。
有一种这样的 viewController,当我点击 UIBarButtonItem 时,它的 UIBarButtonItem Action 不会被调用。我可以看到点击动画(图标先变暗,松开手指后恢复正常)
在 viewDidLoad
的末尾,我打印了 toolbar.items
的信息以指示目标操作已正确设置。
最佳答案
在我的例子中,我设置了按钮并将其实例化为 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(_:)))
}
关于iOS11 UIBarButtonItem 操作未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45928626/