【问题标题】:iOS11 UIBarButtonItem not workingiOS11 UIBarButtonItem 不工作
【发布时间】:2017-09-18 11:52:33
【问题描述】:

我有一个应用在商店中。我正在尝试为 iOS11 版本做好准备,但遇到了一个烦人的问题。

应用程序中的UIBarButtonItems 均未正常工作。 leftBarButtonItems 是可点击的,但点击区域稍微在项目的右侧。 rightBarButtonItems 根本不起作用!我已经通过情节提要和代码添加了这些项目,但它们似乎都没有工作。请帮忙!

这是一个例子:-

navigationItem.rightBarButtonItem = UIBarButtonItem(title: NSLocalizedString("Save", comment: "save button title"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(VC.rightBarButtonClicked(_:)))

【问题讨论】:

标签: ios swift uibarbuttonitem ios11


【解决方案1】:

有同样的问题。它归结为我们项目中名为“UIButton+MinimumTouchArea.swift”的文件中的 UIButton 扩展,它覆盖了 UIButton.hitTest 并破坏了 iOS 11 中的 UIBarButtonItem。我们花了一整天的时间才弄清楚!

【讨论】:

  • 谢谢!结果发现以前的开发者覆盖了按钮的 hitTest 区域,结果搞砸了!
【解决方案2】:

iOS11 UIBarButtonItem action not get called

遇到了同样的问题,我的解决方案是使用 xcode 8.3 构建(运行 8.3 构建的应用程序的 ios11 设备效果很好)

Use Xcode 8 with iOS 11您可以使用此解决方法在 xcode 8.3 上调试 ios11 设备

【讨论】:

  • 感谢您的回复。这也是我现在正在做的事情,但是应该有办法用 Xcode9 解决这个问题,因为我制作了一个示例应用程序并下载了另一个开源项目,两者都可以正常工作
【解决方案3】:

是的,iOS 11 中存在错误,因此您可以使用其他方式。

使用interactivePopGestureRecognizer 喜欢

 self.navigationController?.interactivePopGestureRecognizer?.delegate = self as! UIGestureRecognizerDelegate

并实现像

这样的委托方法
 func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
        guard gestureRecognizer == interactivePopGestureRecognizer else {
            return true // default value
        }

        // Write you code here.
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-15
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 2023-03-28
    相关资源
    最近更新 更多