2011-01-05 8 views
1

このコードは、携帯電話を横向きにして回転させたときにclockViewを表示させ、次に縦に戻したときにmainViewに戻すように設定しています。しかし、それが肖像画に戻ると、肖像画は風景モードになります。どのように私はこれを修正するのですか?これは私のコードです。mainViewの回転を停止するにはどうすればよいですか?

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

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

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

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

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

答えて

3

あなたのビューコントローラのサブビューとしてMAINVIEWとclockViewの両方を持っている、おそらくより良いです:

// 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; 
    } 
} 

この方法で、bothsビューは自動的に正しい方法で回転させると、あなたの問題が離れて行く必要があります。

関連する問題