親と子の2つのView Controllerがあります。
したがって、viewDidLoad
メソッドでは次のことを行います。
ChildViewController* childViewController = [[ChildViewController alloc] init];
[self addChildViewController:childViewController];
// ChildViewController sets his own constraints in viewDidLoad
[self.view addSubview:childViewController.view];
[childViewController didMoveToParentViewController:self];
//
// setup constraints to expand childViewController.view to
// fill the size of parent view controller
//
したがって、基本的には、updateViewConstraints
親コントローラーの制約が適用される前に ChildViewController で呼び出されるため、実際には のカスタムメソッドでself.view.frame == CGRectZero
指定したものとまったく同じです。loadView
ChildViewController
translatesAutoresizingMaskIntoConstraints
すべてのビューに対して all を設定しNO
ます。
この場合、制約を設定する適切な方法は何ChildViewController
ですか?親の後に制約を更新しますか?
両方のコントローラーからの現在のログはかなりイライラします。viewWillLayoutSubviews の前に updateViewConstraints を呼び出す方法がわかりません。
App[47933:c07] ChildViewController::updateViewConstraints. RECT: {{0, 0}, {0, 0}}
App[47933:c07] ParentViewController::updateViewConstraints
App[47933:c07] ChildViewController:viewWillLayoutSubviews. RECT: {{0, 0}, {984, 454}}
App[47933:c07] ChildViewController:viewDidLayoutSubviews. RECT: {{0, 0}, {984, 454}}