解決策
UIButtonをUIBarButtonItemに変換した後、isEnabledをfalseにすればちゃんと押せなくなってくれた。
SampleViewController.swift
let barButtonItem = UIBarButtonItem(customView: button)
button.isEnabled = false
navigationItem.rightBarButtonItem = barButtonItem
原因
isEnabledがfalseのUIButton(押せないボタン)をUIBarButtonItemに変換しても、そのボタンのisEnabledは自動的にtrueになってしまうようだ。
以下はボタンが押せてしまうコード例
SampleViewController.swift
let button = UIButton()
button.setTitle("ボタン", for: .normal)
button.addTarget(self, action: #selector(tappedButton), for: .touchUpInside)
button.isEnabled = false
let barButtonItem = UIBarButtonItem(customView: button) // button.isEnabled = trueに自動で書き換わってしまう
navigationItem.rightBarButtonItem = barButtonItem