Straightening out some device rotation issues in my app after being pointed in the right direction by Chris Honselaar, tweaking to get the behavior I wanted under iOS 5 was no problem. Just to clarify, the behavior I'm trying to create rotation support for Portrait and PortraitUpsideDown only, no landscape, in my app. I got this in iOS 5 now for both iPad and iPhone.
To get it under iOS 6 I added the following code:
public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations ()
My app has two versions of its main view controller, one for iPad and one for iPhone. The only difference between the two are just style differences to text and vertical spacing between elements for appearance. This has worked just fine so far, and the app works great on both devices for iOS 5 and iOS 6 (this rotation problem aside).
The style and spacing differences aside, the code is identical between the two main view controllers, and they both have the code above. When I run the app on an iOS 6 iPad (device or simulator), I get exactly the rotation behavior I want -- the view rotates between Portrait and PortraitUpsideDown. BUT when I run the app on an iOS 6 iPhone (device or simulator), I don't get any rotation at all (which is to say, no PortraitUpsideDown).
The weirdness is that when I run the app on an iPad, DidRotate is called every time the device is rotated as one would expect. But when I run it on an iPhone, DidRotate is never called. I'm no genius, but I'm pretty sure that's why the view isn't rotating on the iPhone. :-) (Oh, and I do have the correct orientation settings in Info.plist for both iPhone and iPad, so it's not that.)
So why isn't DidRotate ever called when the app is run on the iPhone but it is called when run on the iPad? I'm guessing that it has to be because of some code outside of the main view controller file, maybe in AppDelegate or something, but I have combed through that file and I just can't see anything that could account for this.
Does anyone have any ideas? Am I missing something obvious (I hope)?