2012-11-24 3 views
5

하위보기 컨트롤러로 UINavigationController을 추가하고 부모보다 작은 프레임을 제공하려고합니다. 그러나 내비게이션 컨트롤러의 프레임을 변경하면 이 아닌은 내비게이션 컨트롤러의 루트보기 컨트롤러의 프레임을 적절하게 변경합니다. viewWillAppear:에서 다음하위보기 컨트롤러로 추가 된 탐색 컨트롤러의 프레임 설정

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

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

viewDidLoad에서

, 탐색 모음이 제대로 배치되는 동안

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);