Ich habe zwei View-Controller, Eltern und Kind.Automatische Anordnung Einschränkungen und Kind-View-Controller
So in der viewDidLoad
Methode kann ich folgendes:
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
//
Also im Grunde, was passiert ist, dass updateViewConstraints
auf ChildViewController anwenden, bevor Eltern Controller Einschränkungen genannt wird, so in der Tat self.view.frame == CGRectZero
, genau das gleiche wie ich angegeben in benutzerdefinierte loadView
Methode in ChildViewController
.
translatesAutoresizingMaskIntoConstraints
alle NO
für alle Ansichten festgelegt.
Was ist der richtige Weg, um Auslegungsbeschränkungen in diesem Fall so ChildViewController
aktualisiert seine Zwänge nach Elternteil?
Aktuelles Protokoll von beiden Controllern ist ziemlich frustrierend, ich verstehe nicht, wie updateViewConstraints kann vor viewWillLayoutSubviews aufgerufen werden:
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}}
Sie müssen den Code anzeigen, wo Sie tatsächlich Ihre Einschränkungen hinzufügen, sonst ist es schwer zu sagen, was los ist. – Maarten
@Maarten Ich habe das Problem gelöst und die Antwort unten gepostet, nicht sicher, dass es die Lösung ist, nach der ich gesucht habe, es scheint falsch, aber es funktioniert. Sorry, dass ich den Code nicht posten kann, es ist zu viel Code ... – Andy