The reason is simple: the default value for the translucent property of the navigation bar.
Up to iOS 6.1 the default value was NO, but starting from iOS7 the default value is YES.
A translucent navigation bar just sits on top of its top view controller's view, while a not translucent one causes the view controller's view to resize accordingly.
To answer your question, you either manually set the navigationBar.translucent = NO
, or, if you want to keep it translucent, you need to adjust the layout accordingly.