0

如果设备是 iPhone,我想将方向锁定为纵向,如果设备是 iPad,我想允许所有方向。

我有这个代码,但它不会将 iPhone 锁定为纵向模式:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    {
        return NO;

    }
    else
    {
    if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight)
        return YES;
    }
    return NO;

}

问题是什么?

4

2 回答 2

0
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    {
        return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);

    }
    else{
        return YES;
    }

}

试试这个。希望这可以帮助。

于 2012-11-05T09:35:05.110 回答
0
if you will navigate the view then force orientation will not work but if you will     present your view then it will work very well and it works for me. In my project all screens are in portrait mode only but only one screen is in landscape mode.   
- (IBAction)startButtonClicked:(id)sender {

CTFailure_RemedyGameViewController *remedyGameController = [[CTFailure_RemedyGameViewController alloc]initWithNibName:@"CTFailure_RemedyGameViewController" bundle:nil];
[self presentModalViewController:remedyGameController animated:NO];
[remedyGameController release];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

@end
于 2012-11-05T09:36:45.583 回答