2011-12-03 103 views
0

我有兩個視圖控制器,其中我使用導航控制器從一個視圖到另一個..... 導航在我的第一個視圖控制器我檢查這個方向在我- (void)viewDidLoad問題而改變方向

if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) 
{ 
//Do this task 
} 
else 
{ 
//Do this task 
} 

當我試圖從第二到第一的ViewController導航.. 我使用此代碼的方式來瀏覽

-(IBAction)back 
{ 
    [self.navigationController popViewControllerAnimated:YES]; 

} 

這裏問題就出現了... 上面的方向條件不被檢查..當我試圖從第二個導航到第一個視圖控制器...... 我不知道我在哪裏滯後....是否我堅持任何邏輯或者我想改變我的代碼???????

回答

0

調用此方法

-(void) viewWillAppear:(BOOL)animated{ 


     [self willAnimateRotationToInterfaceOrientation:[UIApplication sharedApplication].statusBarOrientation duration:0]; 
    } 


-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    if(toInterfaceOrientation == UIInterfaceOrientationPortrait || toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) 
    { 

    set frame here........ 
    } 
    else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) 
    { 
    set frame here........   

    } 



} 
+0

什麼是需要這種方法嗎?如果我想打電話給這個 – Icoder

+0

雅我KNW調用此方法只聞設備方向正在改變 – Icoder

+0

當你叫popViewControllerAnimated方法viewDidLoad方法當時沒有調用viewWillAppear方法,所以當時你稱之爲Rotaion方法。 –