2012-11-24 177 views
5

我试图添加UINavigationController作为子视图控制器,然后给它比它的父级更小的框架。但是,更改导航控制器的框架而不是正确更改导航控制器的根视图控制器的框架。作为子视图控制器添加导航控制器的设置框架

viewDidLoad

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

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

然后,在viewWillAppear:

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); 
相关问题