开发者

How do i stop the mainView from rotating?

I have this code, set to make the clockView appear when the phone is rotated to landscape, and then to make it go back to the mainView when it's returned to portrait. But when it does go back to portrait, the portrait view is in landscape mode. How do i fix this? This is my code.

-(void)willAnimateRotationToInterfaceOrientation(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    UIInterfaceOrientation toOrientation = self.interfaceOrientation;

    if(toOrientation == UIInterfaceOrientationPortrait)
    {
        self.view = mainView;
    }

    else if(toOrientation == UIInterfaceOrientation开发者_开发知识库LandscapeLeft)
    {
        self.view = clockView;
    }

    else if (toOrientation == UIInterfaceOrientationPortraitUpsideDown)
    {
        self.view = mainView;
    }

    else if(toOrientation == UIInterfaceOrientationLandscapeRight)
    {
        self.view = clockView;
    }
}


It is probably better to have both mainView and clockView as subviews of your view controller:

// in viewDidLoad do [self.view addSubView:mainView]; [self.view addSubView:clockView]; clockView.hidden = YES;

-(void)willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    if(UIInterfaceOrientationIsPortrait(toOrientation)) {
        mainView.hidden = NO;
        clockView.hidden = YES;
    }
    else {
        mainView.hidden = YES;
        clockView.hidden = NO;
    }
}

This way, boths views are automatically rotated in the right way and your problem should go away.

0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜