嵌入在 UISplitViewController 中的 UIViewController 未在 iPhone 上显示条形按钮

UIViewController embedded in UISplitViewController not showing bar buttons on iPhone

我继承了一个项目,它有一个 table 当你 select 一行时显示其他视图控制器。没有什么花哨。然而,一些视图控制器是 UISplitViewControllers。正如预期的那样,这在 iPad 上运行良好。所有按钮显示。但是在 iPhone 导航到这些控制器时,它会按预期显示主控制器。但是 none 的栏按钮会像在 iPad 上一样显示在导航栏中。有什么想法吗?

其中一个按钮是如何设置的:

    let backbtn = UIButton(type: UIButtonType.custom)
    backbtn.setImage(arrowImage, for: UIControlState.normal)
    backbtn.addTarget(self, action: #selector(onBackToTeamListTouch), for: UIControlEvents.touchUpInside)
    backbtn.frame = CGRect(x: -3, y: -1, width: 35, height: 35)
    let backButtonView = UIView(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
    backButtonView.bounds = backButtonView.bounds.offsetBy(dx: 14, dy: 0)
    backButtonView.addSubview(backbtn)
    let backArrow = UIBarButtonItem(customView: backButtonView)
    backArrow.tintColor = .white
    self.navigationItem.leftBarButtonItems = backArrow

所以它看起来像在 iPhone 上,如果您直接转到 UISplitViewController,您将失去导航按钮,因为导航控制器被埋在下面。最终不得不在 iPhone 的情况下做一个条件,然后转到主视图的导航控制器。有点痛苦,但似乎可以解决问题。