0

我正在研究在視圖控制器中具有導航視圖控制器的應用程序。一切工作正常,但事實上,當它不開始在縱向的導航控制器沒有適當的大小,佔用整個屏幕。我有截圖如何發生。導航控制器調整大小隻適用於portrati?

這裏是當應用程序在橫向開始左/右或縱向倒掛這種情況發生here

我不知道如果任何人有一個應用程序時在縱向啓動here

現在發生了什麼對於這個問題的解決方案,因爲它在頂部有一個空間,旋轉發生時總會有空隙。

有關更多參考,我已經包含了一些我的代碼。

-(void)viewDidLoad{ 
SongsViewController *viewController = [[SongsViewController alloc] initWithNibName:@"SongsViewController" bundle:nil]; 

dataView = [[UINavigationController alloc] initWithRootViewController:viewController]; 
[dataView setDelegate:self]; 
dataView.view.frame = CGRectMake(192, 85, 768 - 192, 1004 - 85 - 44); 
[dataView.view setAutoresizesSubviews:YES]; 
[dataView.view setAutoresizingMask:UIViewAutoresizingNone]; 

[self.view addSubview:dataView.view]; 
[viewController release]; 
} 

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration{ 

if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation ==  UIInterfaceOrientationPortraitUpsideDown) { 

    dataView.view.frame = CGRectMake(192, 85, 768 - 192, 1004 - 85 - 44); 

} 

else { 

    dataView.view.frame = CGRectMake(192, 85, 1024 - 192, 748 - 85 - 44); 

} 

} 

回答

2

首先,你最好不應該被添加視圖控制器的視圖作爲一個子視圖到另一個的viewController的視圖。至少在iOS < = 4.3。

你必須做的是在navigationController中嵌入ViewController視圖來啓動你的應用程序。我的意思是說,試着將你的應用程序的根視圖控制器作爲navigationController。或者,如果您有一個tabBar作爲應用程序的基礎,請嘗試將每個選項卡的viewController設置爲navigationController。

接下來,使用的viewController的財產:

self.navigationController 

進一步推/流行viewControllers進入或離開它。

您不需要在旋轉委託方法中進行這些框架調整,您只需爲SongsViewController的視圖組件(子視圖)正確設置自動調整掩碼,並自動保留所有內容。

+0

查看隱藏在子視圖中的自動修復。我知道視圖控制器內的導航控制器是非常規的,但我需要它能夠在右側列表中移動。 – Pete42

0

使用不同的旋轉功能似乎解決了這個問題。 我使用過:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration 
相關問題