При добавлении элементов навигации вам не нужно устанавливать ограничения, а только фреймы.
Я столкнулся с вашей проблемой и в настоящее время испытываю ее на iOS 11. Быстрое решение, которое я использую, - это добавитьчеткая отрицательная кнопка проставки.Вот так:
internal lazy var button_Skip: UIButton = {
let button = UIButton(type: .custom)
button.setup("SKIP".localized(), normalTextColor: .blue)
button.isHidden = true
return button
}()
let barButton = UIBarButtonItem(customView: self.button_Skip)
self.button_Skip.frame = CGRect(x: 0, y: 0, width: 55.0, height: 44.0)
let negativeSpacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.fixedSpace, target: nil, action: nil)
if #available(iOS 11.0, *) {
negativeSpacer.width = -10.0
}
Надеюсь, это поможет.