UISplitViewController embedded in UITabBarController behaves strange in iOS 14

As the title says, I have a UISplitViewController embedded in a UITabBarController and I set the displayMode property of the UISplitViewController to allVisible. But in a horizontally regular interface in iOS 14, the UISplitViewController only displays one view controller.
Answered by forresthu in 627184022
If I embed the split view controller in a container view controller, then the problem solved. This is the the most effective solution I have ever found.
I also have big problems with split view controllers inside tab bar controllers in Xcode 12 beta 3.
Everything was perfect in Xcode 12 beta 2.

Now Interface Builder itself crash constantly when opening a storyboard that contain a split view controller that is inside a tab bar controller.

This is the error displayed by Xcode:
An internal error occurred. Editing functionality may be limited.

If I generated the log of this error I get this:
Exception name: NSInvalidArgumentException
Exception reason: UITabBarController is unsupported as viewController for -[UISplitViewController setViewController:forColumn:] in Primary column


I'm think that it has to do with the fact that from Xcode beta 3 the split view controllers inside storyboards are automatically instantiated with the new column system introduced in iOS 14 instead of the classic system. We really need a way to indicate in the storyboard that we want to use the classic system and not the new one.
I submitted a bug report for this and have the same issue on Beta 3 but not Beta 2. It appears to be inappropriately setting the horizontal trait collection to compact if a UISplitViewController is inside a UITabBarController. In fact if you override the getter for the traitCollection (which you're not technically supposed to do) on the splitviewcontroller and pass the parent traitCollection from the tabbarcontroller most of the problems go away aside from a few visual glitches with navigation bar title positioning.
Issue persists on beta 4 and the workaround still works. The navigation bar positioning bug was fixed however.
Accepted Answer
If I embed the split view controller in a container view controller, then the problem solved. This is the the most effective solution I have ever found.
This appears to be fixed in XCode 12 beta 5

They restored an option for Style: "Unspecified (Discouraged)" in storyboard for UISplitViewController which reverts things back to the previous behavior. You'll need to rebuild the storyboard with the new version for this to take effect (simply rebuilding the project but never opening the storyboard will not work).
UISplitViewController embedded in UITabBarController behaves strange in iOS 14
 
 
Q