I have encountered this bug several times. I have a application with a navigation controller (navbar hidden). when a button is “pressed” i want to push another view with a tabbarviewcontroller. When the new view is pushed, it’s 20 pixels lower than it should (and part of the tabbar is not visible).
If I enter modal-view controller from the tabbarviewcontroller and then i dismiss it, the tabbarviewcontroller is shown properly.
I put the status bar in every view to be unspecified (thought that was the problem) and i un-checked the autoresize subviews from each view.
in your code use bounds property instead of application frame . in my it worked hope to work in case too…….:)