views:

78

answers:

2

I have an iPad app that is set to start in landscape mode.

From what I read, the UIWindow itself doesn't need to be rotated, instead it will apply a rotation transform to all of it's subviews when the device is rotated.

My application has a UINavigationController which has the app's views, and above it a custom MenuBarViewController which will show sometimes on one edge of the screen.

In my app delegate's didFinishLaunching.. I do:

[window addSubview:navigationController.view];
[window addSubview:menuBarWrapperViewController.view];
[window bringSubviewToFront:menuBarWrapperViewController.view];

The views within my navigationController seem to be fine, however the view in my MenuBarViewController are not rotated.

I've checked, and both my MenuBarViewController and my MenuBarWrapperViewController (which doesn't do anything yet) return YES to shouldAutorotate..

Does anyone have any idea why one of my UIViews subviews doesn't get the correct rotation transform?

EDIT: upon further investigation, it seems that UIWindow only applies the transform to the first added subview, so if I change the order of addSubview calls, only the first subview will be rotated.

Does anyone know why?

A: 

Perhaps you should try having one view controller be in charge of handling all rotations of all subviews being displayed.

hotpaw2
That's what I'm doing at the moment, but I'd like to find out why and remove this hack.
Prody
A: 

Arf, no answer? :-z

Prody