2012-11-22 74 views
2

不會改變我一直在使用拆分視圖在我的應用程序。
當我在IOS 6模擬器運行我應用它旋轉按方位的變化,並且效果很好,但是當我在IOS 5或iOS運行相同的應用程序5.1模擬器和我改變模擬器但分割視圖中未變化每取向變化的取向。
我還添加代碼UISplitview取向的iOS 5和iOS 5.1

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown || interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

-(BOOL)shouldAutorotate 
{ 
    return YES; 
} 

我使用以下代碼 添加拆分視圖 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 返回YES; }

上述工作在主視圖和詳細視圖方法。

我用下面的代碼

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
{ 
    // obj_PageControlViewController = [[PageControlViewController alloc]initWithNibName:@"PageControlViewController-iPad" bundle:nil]; 

    MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPad" bundle:nil]; 
    UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController]; 

    DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController_iPad" bundle:nil]; 
    UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController]; 

    masterViewController.detailViewController = detailViewController; 

    self.splitViewController = [[UISplitViewController alloc] init]; 
    self.splitViewController.delegate = detailViewController; 
    self.splitViewController.viewControllers = @[masterNavigationController, detailNavigationController]; 
    TabBarAppDelegate *appDelegate = (TabBarAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    [appDelegate.window setRootViewController:self.splitViewController]; 

} 

,但它不能正常工作添加拆分視圖。任何人都可以幫助我?

+0

您是否在項目摘要中選擇了支持的界面方向? (點擊左側欄上的項目,然後在第一部分的中間窗口中選擇您的應用可支持的所有方向) – rdurand

+0

否我的項目概要中沒有選擇方向。 –

回答

0

在iOS5的和下面你應該使用

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 

您發佈上述(shouldAutorotate)的一個是iOS6的+

+0

我覺得上面的方法是針對iOS6以下的。在iOS 6模擬器中運行應用程序時,它不會被調用。但是這種方法會在iOS 6下面調用。 –

4

你說你加入shouldAutorotateToInterfaceOrientation:但你沒有說哪裏您添加它。要在iOS 5.1 UISplitViewController的自轉或更早的版本,則必須在拆分視圖控制器(主機和詳細信息視圖控制器)的子視圖控制器的視圖控制器供應shouldAutorotateToInterfaceOrientation:

,將工作,假設拆分視圖控制器是應用程序的頂層(根)視圖控制器,由主從模板設置。

哦,保存自己的一些麻煩:在shouldAutorotateToInterfaceOrientation:,只是返回YES。在iPad上,你總是想要自動旋轉。

+0

我添加了shouldAutorotateToInterfaceOrientation:在Master視圖和Detail視圖中,我將分割視圖設置爲根視圖。當我旋轉我的設備時,旋轉視圖的背景,但分割視圖的內容仍然保留在它上面,就像是縱向視圖。 –

+1

聽起來好像有一個額外的視圖或視圖控制器。使用適用於iPad的主細節應用程序模板製作新項目;這就是應該如何構建UISplitViewController。 – matt

+0

爲我工作。謝謝 – pahan