6

子ViewControllerとしてを追加し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;

ナビゲーションバーは適切に配置されていますが、ルートビューコントローラーの白い背景はそうではありません。私は正確に何を間違っているのですか?ご協力いただきありがとうございます。 ここに画像の説明を入力してください

4

1 に答える 1

9

viewDidLoad子ViewControllerを親に追加した直後にこれを行うと、実際に機能します。

_navController.view.frame = CGRectInset(self.view.bounds, 20, 20);
于 2012-11-25T22:56:55.680 に答える