2009-06-10 11 views
1

私はtje iTunesアプリケーションに似たビューを回転しています。ポートレートはテーブルビューで、風景は写真ビューワです。navigationBarHidden = NOのときに「空白」領域を修正する方法

風景から肖像画に戻ったとき、私はナビゲーションバーを回復しようとしましたが、歪んだテーブルビューとナビゲーションバーが表示されませんでした。

これは私が何をすべきかです:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 
          duration:(NSTimeInterval)duration { 
BOOL restoreNav = NO; 

if ((toInterfaceOrientation == UIInterfaceOrientationPortrait) || 
    (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)) { 
    [self inPortrait]; 
    restoreNav = YES; 
} else { 
    [self inLandscape]; 
} 

if (self.landscape) 
{ 
    if (toInterfaceOrientation == UIInterfaceOrientationPortrait) 
    { 
     self.view = self.portrait; 
    } 
    else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) 
    { 
     self.view = self.landscape; 
    } 
    else if (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) 
    { 
     self.view = self.portrait; 
    } 
    else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) 
    { 
     self.view = self.landscape; 
    }  
    [[self.navigationController view] setFrame: [[UIScreen mainScreen] bounds]]; 
} else { 
    self.navigationController.navigationBarHidden = NO; 
} 

[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; 
+0

質問には間違いありませんか? – mamcx

答えて

1

私はこれは、関連するコードですhttp://www.iphonedevsdk.com/forum/iphone-sdk-development/3262-horrible-drawing-after-hiding-navigationbar.html

で、このための半修正が見つかりました:しかし

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { 
//total hack - to fix the bug where the screen layout is shagged if the device orientation 
//is changed when the navigation is hidden 

if ([self.navigationController isNavigationBarHidden]) 
{ 
    [self.navigationController setNavigationBarHidden:NO animated:NO]; 
    [self.navigationController setNavigationBarHidden:TRUE animated:NO]; 
} 

}

ナビゲーションバーを表示すると、もう一度乱雑です。