Disclaimer: I tried to use method swizzling suggested by another user, it's causing some glitches... Blockquote
with the release of iOS 14.x, users are able to hold the back button, to display a menu, this is enabled by default, I'm trying to remove it using appearance.. but it look likes there is no appearance option for it.
enum Runtime {
static func swizzle() {
if #available(iOS 14.0, *) {
exchange(
#selector(setter: UIBarButtonItem.menu),
with: #selector(setter: UIBarButtonItem.swizzledMenu),
in: UIBarButtonItem.self
)
}
}
private static func exchange(
_ selector1: Selector,
with selector2: Selector,
in cls: AnyClass
) {
guard
let method = class_getInstanceMethod(
cls,
selector1
),
let swizzled = class_getInstanceMethod(
cls,
selector2
)
else {
return
}
method_exchangeImplementations(method, swizzled)
}
}
@available(iOS 14.0, *)
private extension UIBarButtonItem {
@objc dynamic var swizzledMenu: UIMenu? {
get {
nil
}
set {
}
}
}