In case someone still searching for the solution. Place your UISplitViewController in container viewcontroller. Just plain UIViewController but with UISplitViewController view added on it's own view
override func viewDidLoad() {
super.viewDidLoad()
addChild(splitVC)
view.addSubview(splitVC.view)
NSLayoutConstraint.activate([
splitVC.view.topAnchor.constraint(equalTo: view.topAnchor),
splitVC.view.bottomAnchor.constraint(equalTo: view.bottomAnchor),
splitVC.view.leadingAnchor.constraint(equalTo: view.leadingAnchor),
splitVC.view.trailingAnchor.constraint(equalTo: view.trailingAnchor)
])
splitVC.didMove(toParent: self)
}