Resizing the navigation bar (via any method, including subclassing) is not supported, and neither is changing the frame of a navigation bar that is owned by a UINavigationController (the navigation controller will happily stomp on your frame changes whenever it deems fit to do so).
Also the frame "CGRect(x: 0, y: 0, width: <width>, height: 116)" is wrong. The navigation bar needs to be placed on the bottom edge of the status bar, not underlapping the status bar, and with its natural height. If you were laying out the navigation bar manually, the correct frame in this case would be "CGRect(x: 0, y: 20, width: <width>, height: 96)" (this assumes a 20pt tall status bar, iPhone X uses a 44pt tall status bar).
Finally the internal layout of the navigation bar is an implementation detail *including all class names and orderings*. Any code that relies upon the ordering of the navigation bar's subviews or the names of any of their classes is likely to encounter issues in the future, as these are all private details. Please do not rely upon them.
If there are things you want to do with a navigation bar that you cannot, please Report Bugs!