I\'ve noticed some strange behavior when presenting a UINavigationController (with a root view controller, already pushed, naturally) with
UINavigationController
Just set the frame in layoutSubviews as it is called when the status bar height changes. In general as a rule of thumb, do all frame setting in layoutSubviews only.