iPhone强制定位

时间:2010-08-09 23:15:03

标签: objective-c iphone

首先 - 我读了所有类似的主题,但没有为我工作。 我有几个视图控制器。我用那段代码改变了它们:

- (void)flipToAzbukaMenu {
    AzbukaMenuController *aAzbukaMenu = [[AzbukaMenuController alloc] initWithNibName:@"AzbukaMenu" bundle:nil];
    [self setAzbukaMenuController:aAzbukaMenu];
    [aAzbukaMenu release];

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:2.0];
    [UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:window cache:NO];
    [viewController.view removeFromSuperview];
    [azbukaArcadeController.view removeFromSuperview];
    [self.window addSubview:[azbukaMenuController view]];

    [UIView commitAnimations];
}

此外,我在plist中有正确的键,允许我以横向模式启动应用程序。当应用程序启动时它具有正确的方向(横向),但是当我改变我的视图时它变成了肖像,并且仅在旋转设备270度(不是90 lol)之后再次成为风景。如何强制应用以横向模式显示所有视图?

UPD:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    if ((interfaceOrientation==UIInterfaceOrientationPortrait)||(interfaceOrientation==UIInterfaceOrientationPortraitUpsideDown))
    {
        return NO;
    }
    if ((interfaceOrientation==UIInterfaceOrientationLandscapeLeft)||(interfaceOrientation==UIInterfaceOrientationLandscapeRight))
    {
        return YES;
    } else {
        return YES;
    }
}

1 个答案:

答案 0 :(得分:0)

有两种横向模式和两种纵向模式。一个是景观,另一个是景观。例如,如果你从左侧的风景转换到其中一种肖像模式(比方说,底部带有主页按钮),你将获得270度旋转。

至于如何强制你的观点留在风景中(选择两种模式中的一种),只需执行以下操作:

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

这将始终导致该视图以横向左方向显示。