OK, seeing your question remains unanswered after a day, I'll try to answer it even though you haven't really explained what the problem is.
To provide auto-rotation in a tab bar application, you need to implement shouldAutorotateToInterfaceOrientation: in:
- All your view controllers
- Your tab bar controller
You don't need to subclass UINavigationController, just UITabBarController.
After you've subclassed UITabBarController, make sure you set the class of your tab bar controller instance to your subclass in Interface Builder.
Also, the proper implementation of shouldAutorotateToInterfaceOrientation: for an iPhone application is:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown;
}
so that the user can "lock" the orientation to landscape by turning the phone upside down.