UISplitViewController:DetailViewController 中的 titleView 在横向上消失,预期行为?

Avi*_*ash 7 uikit uisplitviewcontroller ios swift

我在titleView导航栏中添加了一个navigationItem.titleView用于 Master/Detail VC的自定义。在将设备的方向更改为横向时,titleViewMasterViewController工作正常,但DetailViewController titleView消失。在将方向更改回纵向时titleView出现DetailViewController。我还附上了源代码和视频的链接。

这是有意的行为还是我犯了错误,还是苹果方面的问题?

//Custom Title View:
class TitleView: UIView {
    override func sizeThatFits(_ size: CGSize) -> CGSize {
        return CGSize(width: 50, height: 20)
    }
}

class DetailViewController: UIViewController {
    override func viewDidLoad() {
       super.viewDidLoad()
       //Adding titleView for Master/Detail VC:
       navigationItem.titleView = {
            //Setting frame size here, did not make any difference
            let view = TitleView(frame: .zero)
            view.backgroundColor = .red
            return view
       }()
    }
}

Run Code Online (Sandbox Code Playgroud)

完整源代码在这里:https : //github.com/avitron01/SplitViewControllerIssue/tree/master/MathMonsters

突出问题的视频:https : //vimeo.com/336288580

小智 2

我遇到过同样的问题。这似乎是一个 iOS 错误。我的解决方法是在每个视图布局上重新分配标题视图。我在我的中使用了这段代码DetailViewController

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    if let v = navigationItem.titleView {
        navigationItem.titleView = nil
        navigationItem.titleView = v
    }
}
Run Code Online (Sandbox Code Playgroud)