我正在尝试添加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;
导航栏放置正确时,根视图控制器的白色背景不是。我究竟做错了什么?谢谢你的帮助。
答案 0 :(得分:7)
如果您在将子视图控制器添加到父级后立即在viewDidLoad
中执行此操作,它确实有效:
_navController.view.frame = CGRectInset(self.view.bounds, 20, 20);