What you are missing here is that a translucent navigation bar sits on top of your viewcontroller’s view, while a non-translucent navigation bar pushes down your view controller’s view (effectively resizing it).
So what is happening here is that with a translucent navigation bar, that white space is actually hidden underneath the bar, while when the bar is not translucent it’s “pushed down”.
There are a number of ways to go about it, and it mainly depends on whether you’re using auto layout or not.