开发者

Rotate portrait to landscape and portrait mode of my view controller

开发者 https://www.devze.com 2023-02-07 06:25 出处:网络
Normally my application shows all views in portrait mode except report view. Report view shows only when I am on settings view and I rotate my device to landscape mode. Now when I rotate my device to

Normally my application shows all views in portrait mode except report view. Report view shows only when I am on settings view and I rotate my device to landscape mode. Now when I rotate my device to portrait mode again, report view is dismissed and settings view is displayed.

In report view 

> shouldAutorotateToInterfaceOrientation

return ((interfaceOrientation == UIInterfaceOrientationLandscapeRight)||( interfaceOrientation == UIInterfaceOrientationLandscapeLeft));



Here at settings view 

    shouldAutorotateToInterfaceOrientation


    if((interfaceOrientation == UIInterfaceOrientationLandscapeRight)||( interfaceOrientation == UIInterfaceOrientationLandscapeLeft))
     {  

     Report *report = [[Report alloc]initWithNibName:@"Report" bundle:[NSBundle mainBundle]]; 
     [self.navigationController pushViewController:report animated:YES]开发者_如何学编程;
     [report release];

     }
     return YES;
     }


Don't create your viewcontroller in shouldRotate..., but in willRotateToInterfaceOrientation:duration:, which is where you're supposed to respond to a rotation. In your shouldAutorotateToInterfaceOrientation:, just return YES when you want to be able to rotate to that orientation- in your case, it looks like you want to either all orientations, or all orientations except PortraitUpsideDown.

In your willRotateToInterfaceOrientation:duration:, you can push your viewcontroller or pop it as needed.

0

精彩评论

暂无评论...
验证码 换一张
取 消