2013-01-21 56 views
0

我有一個xib文件,有兩個不同的視圖,一個用於縱向,一個用於橫向。問題正在載入正確的方向UIView使用一個xib加載

在我的.m文件我有以下幾點:

-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 

{ 
if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) 
{ 

self.view = iPadLandscape; 
} 
else { 

self.view = iPadPortrait; 
} 
} 

當應用程序正在運行特定的屏幕和我改變方向的新觀點加載罰款。有兩個問題我已經注意到了。 xib的「視圖」連接到縱向視圖。因此,當應用以縱向模式啓動時,它看起來很好,但如果以橫向模式啓動,它仍會加載縱向視圖。但如果我將它移動到縱向並且背景橫向視圖加載正常。

另一個問題是,如果我以縱向啓動並轉到下一個屏幕,然後轉到橫向模式(正常旋轉),然後返回到我的主屏幕,它仍然處於縱向視圖。

任何想法???

回答

0

明確檢查viewWillAppear中的當前方向並更新您的視圖。

由於willRotateToOrientation不叫上應用負載和許多其他事件

0
- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    NSUInteger orientation = [UIDevice currentDevice].orientation; 
    switch (orientation) { 
    case UIDeviceOrientationLandscapeLeft: 
    case UIDeviceOrientationLandscapeRight: 
     // self.view == my landscape view 
     break; 
    case UIDeviceOrientationPortrait: 
    case UIDeviceOrientationPortraitUpsideDown: 
     // self.view == my portrait view 
     break; 
    } 
}