Aren't you misinterpreting what UIInterfaceOrientation*Mask* is? 2013/2/4 Mazzaroth M. <taomaili...@gmail.com>
> I am getting this error in a universal iOS 6.0 sdk app: > > > 2013-02-03 23:41:57.078 scrappling[20350:c07] *** Terminating app due to > uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: > 'preferredInterfaceOrientationForPresentation must return a supported > interface orientation!' > > This occurs in the iPad 6.0 simulator, simulating a non-retina ipad. > > The initial view controller of the app is a UITabViewController subclass. > The storyboard for the app looks like this: > > > http://dl.dropbox.com/u/597030/debugging/Screen%20Shot%202013-02-03%20at%2011.50.49%20PM.png > > This is how I reproduce the crash: > > 1)select an item in the master tableviewcontroller which calls [self > presentMoviePlayerViewControllerAnimated:_playerVC]; > 2)_playerVC is a MPMoviePlayerViewController subclass that presents a video > fullscreen. > 3)the moment I tap "Done" on the video, Cocoa Touch fires > [MMATabBarController preferredInterfaceOrientationForPresentation] and > returns UIInterfaceOrientationMaskLandscape: > > MMATabBarController.m: > > ~snip~ > -(BOOL)shouldAutorotate > { > return YES; > } > > -(NSUInteger)supportedInterfaceOrientations > { > > if([[UIDevice currentDevice] userInterfaceIdiom] == > UIUserInterfaceIdiomPhone) > { > return UIInterfaceOrientationMaskPortrait; > } > else > { > return UIInterfaceOrientationMaskLandscape; > } > } > > - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation > { > > // return UIInterfaceOrientationMaskAll; > if([[UIDevice currentDevice] userInterfaceIdiom] == > UIUserInterfaceIdiomPhone) > { > return UIInterfaceOrientationMaskPortrait; > } > else > { > return UIInterfaceOrientationMaskLandscape; > } > } > ~snip~ > > 4)I've confirmed UIInterfaceOrientationMaskLandscape gets returned from > -preferredInterfaceOrientationForPresentation > 5)I've confirmed UIInterfaceOrientationMaskLandscape gets returned from > -supportedInterfaceOrientations > > 6)Crash! > > > ~~~~~~~~ > > > What I don't understand is why this message is occurring because I have > confirmed that at startup [MMATabBarController > -supportedInterfaceOrientations] returns > UIInterfaceOrientationMaskLandscape. Also my info.plist looks like this: > > <key>UISupportedInterfaceOrientations~ipad</key> > <array> > <string>UIInterfaceOrientationLandscapeLeft</string> > <string>UIInterfaceOrientationLandscapeRight</string> > </array> > > Attempted workarounds: > > 1)I had -preferredInterfaceOrientationForPresentation return > UIInterfaceOrientationMaskAll. > > 2) I added the application:supportedInterfaceOrientationsForWindow: > delegate method to the app delegate. I've confirmed that this gets fired > and UIInterfaceOrientationMaskLandscape gets returned: > > > -(NSUInteger)application:(UIApplication *)application > supportedInterfaceOrientationsForWindow:(UIWindow *)window > { > if([[UIDevice currentDevice] userInterfaceIdiom] == > UIUserInterfaceIdiomPhone) > { > return UIInterfaceOrientationMaskPortrait; > } > else > { > return UIInterfaceOrientationMaskLandscape; > } > } > > 3) I subclassed UINavigationController and I've confirmed that on app > startup UIInterfaceOrientationMaskLandscape is returned. The > UINavigationController looks like this: > > MMANavigationController.m: > > ~snip~ > -(BOOL)shouldAutorotate > { > return YES; > } > > -(NSUInteger)supportedInterfaceOrientations > { > > if([[UIDevice currentDevice] userInterfaceIdiom] == > UIUserInterfaceIdiomPhone) > { > return UIInterfaceOrientationMaskPortrait; > } > else > { > return UIInterfaceOrientationMaskLandscape; > } > } > > - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation > { > > // return UIInterfaceOrientationMaskAll; > if([[UIDevice currentDevice] userInterfaceIdiom] == > UIUserInterfaceIdiomPhone) > { > return UIInterfaceOrientationMaskPortrait; > } > else > { > return UIInterfaceOrientationMaskLandscape; > } > } > ~snip~ > > Any suggestions on what may be going wrong? > > Michael > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/arcank%40gmail.com > > This email sent to arc...@gmail.com > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com