2012-11-24 7 views
5

子ビューコントローラーとしてUINavigationControllerを追加し、その親フレームより小さいフレームを表示しようとしています。ただし、ナビゲーションコントローラのフレームを変更すると、は表示されません。は、ナビゲーションコントローラのルートビューコントローラのフレームを適切に変更します。 viewDidLoadviewWillAppear:に続いナビゲーションコントローラーのフレームを子ビューコントローラーとして追加しました

RootController *rootController = [[RootController alloc] init]; 
_navController = [[UINavigationController alloc] initWithRootViewController:rootController]; 
[rootController release]; 

[self addChildViewController:_navController]; 
[self.view addSubview:_navController.view]; 
[_navController didMoveToParentViewController:self]; 

において

:ナビゲーションバーが適切に配置されている間

CGRect bounds = self.view.bounds; 
bounds.origin.x = 20; 
bounds.origin.y = 20; 
bounds.size.width = bounds.size.width - 20; 
bounds.size.height = bounds.size.height - 20; 
_navController.view.bounds = bounds; 

、ルート・ビュー・コントローラの白い背景ではありません。私は間違って何をしているのですか?ご協力いただきありがとうございます。 enter image description here

答えて

7

あなたはすぐに親に子ビューコントローラを追加した後viewDidLoadでこれを行う場合、それが実際に動作します:

_navController.view.frame = CGRectInset(self.view.bounds, 20, 20); 
関連する問題