Вы должны добавить свой навигационный контроллер непосредственно в качестве подпредставления к окну, иначе это не будет работать автоматически. (Нет необходимости менять рамку панели навигации вручную.)
Метод -[application:didFinishLaunchingWithOptions:]
вашего AppDelegate
должен содержать что-то вроде
[window addSubview:self.yourNavController.view];
Чтобы получить пример, где это работает автоматически, вы также можете создать новое приложение на основе навигации в XCode и добавить реализацию для метода shouldAutorotateToInterfaceOrientation:
в RootViewController, который всегда возвращает YES.