Why UIInterfaceOrientation always returns to the right?
When I finish rotate, always ends on the right, why?
PS: I just want to landscape
Here is the code
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
switch (interfaceOrientation)
{
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"Is Left");
case UIInterfaceOrientationLandscapeRight:
NSLog(@"Is Right");
default: ;
}
return UIInterfaceOrientationIsLandscape(interfaceOrientation);
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
switch (fromInterfaceOrientation)
{
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"From Left");
case UIInterfaceOrientationLandscapeRight:
NSLog(@"From Right");
default: ;
}
}
Here is the LOG
2012-08-23 17:45:28.074 Simulador 360[323:707] Is Right
2012-08-23 17:45:28.126 Simulador 360[323:707] Is Right
2012-08-23 17:45:28.131 Simulador 360[323:707] Is Left
2012-08-23 17:45:28.132 Simulador 360[323:707] Is Right
2012-08-23 17:45:28.138 Simulador 360[323:707] Is Left
2012-08-23 17:45:28.140 Simulador 360[323:707] Is Right
2012-08-23 17:45:31.160 Simulador 360[323:707] Is Right
2012-08-23 17:45:31.167 Simulador 360[323:707] Is Right
2012-08-23 17:45:31.977 Simulador 360[323:707] From Left
2012-08-23 17:45:31.980 Simulador 360[323:707] From Right
2012-08-23 17:45:35.684 Simulador 360[323:707] Is Left
2012-08-23 17:45:35.687 Simulador 360[323:707] Is Right
2012-08-23 17:45:35.691 Simulador 360[323:707] Is Left
2012-08-23 17:45:35.693 Simulador 360[323:707] Is Right
2012-08-23 17:45:36.502 Simulador 360[323:707] From Right
You are missing break
s in your switch
statements. Without calling break
, execution will continue through to the next case, so if your case if the interface orientation evaluates to Left, both Left and Right case blocks will be executed.
Fix this by inserting break
at the end of each of your cases:
switch (interfaceOrientation)
{
case UIInterfaceOrientationLandscapeLeft:
NSLog(@"Is Left");
break;
case UIInterfaceOrientationLandscapeRight:
NSLog(@"Is Right");
break;
default: ;
}