首页 > 解决方案 > 从 `navigationBar.backBarButtonItem` 中删除 `UIMenu`

问题描述

在 ios14 中,苹果将我们熟悉的 UIMenus 引入了导航栏,因此我们可以在一次长按中返回几个屏幕。

在此处输入图像描述

但是,我想从我的应用程序中删除该行为。

我尝试在不将菜单设置为 UIBarButtonItem 的情况下创建一个新类,然后将其添加到导航栏,如下所示。

class BackBarButtonItem: UIBarButtonItem {
  @available(iOS 14.0, *)
  override var menu: UIMenu? {
    set {
      /* Don't set the menu here */
      /* super.menu = menu */
    }
    get {
      /* return nil doesn't work either */
      return super.menu
    }
  }
}
let backButton = BackBarButtonItem(title: "BACK", style: .plain, target: nil, action: nil)
navigationItem.backBarButtonItem = backButton

没用^^^

navigationItem.backBarButtonItem?.menu = nil // still displays the menu

这似乎也不起作用。

我怎么能删除那个菜单?

标签: iosswiftuikitios14

解决方案


推荐阅读