iOS11 UIBarButtonItem 操作未被调用

标签 ios ios11 xcode9-beta

我使用 Xcode9 Beta6 构建项目,在 iOS10 设备上正确调用了操作,但在 iOS11 设备上不起作用。

在我的项目中,有一些 viewControllers 在顶部有一个 UIToolBar,而 toolBar 包含一些 UIBarButtonItems。

有一种这样的 viewController,当我点击 UIBarButtonItem 时,它的 UIBarButtonItem Action 不会被调用。我可以看到点击动画(图标先变暗,松开手指后恢复正常)

viewDidLoad 的末尾,我打印了 toolbar.items 的信息以指示目标操作已正确设置。

Debug Output

最佳答案

在我的例子中,我设置了按钮并将其实例化为 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/

相关文章:

ios - 哪个是在 MVP 模式(swift)中初始化演示者的最佳方式

ios - 商店服务崩溃-iOS 11

ios - UISearchController.hidesNavigationBarDuringPresentation 在 iOS 11 Beta 中被 scopeButtons 忽略

swift - 使用 swift 4.0 编译的模块无法导入到 swift 3.1 中 — Carthage

ios - xcode9无法使用 cocoa pod 生成.xcworkspace文件

iphone - iOS 5 在现有应用程序中使用 Storyboards 实现页面 Controller

ios - UINavigationController 在 popViewControllerAnimated 之后不释放/销毁 Controller ?

ios - Swift 4 - 对成员 '>' (iOS 11) 的引用不明确

iOS 11 PDF分享扩展

ios - Hackintosh 10.12.6 上 Xcode 9 beta 4 的空白模拟器屏幕