1
votes

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;
     }
1
What is the exact problem you are facing? Are you able to see your report view in landscape mode? If yes, please explain about the next step you need.Madhup Singh Yadav
I will be able to help you only if I understand you question well. But you are not able to explain it to me in proper english. That's y I tried to modify your question, in a way, I understood your question. Please read the modified question again and let me know if I am interpreting things right?Madhup Singh Yadav

1 Answers

1
votes

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.