Bessere Möglichkeit, die Ansicht zu zwingen, Teilansichten frühzeitig zu laden

Vor kurzem habe ich einen Code geschrieben, in dem ich versucht habe, auf eine Steckdose auf einem zu verweisenUIViewController Ich hatte gerade mit instanziiert[storyboard instantiateViewControllerWithIdentifier] und ändern Sie die Unteransicht, auf die der Ausgang zeigte, bevor Sie denViewController. Es hat nicht funktioniert, weil dieViewControllerDie Ansicht von hatte noch keine Unteransichten geladen, einschließlich derjenigen, auf die sich meine Steckdose bezog. Die Eigenschaft hat mir also nur einen Nullzeiger gegeben.

Nachdem ich (mit etwas Mühe) die Ursache meines Problems im Debugger aufgespürt hatte, googelte ich herum und lernte durch Antworten wiedieses, dass ich die Ansicht dazu veranlassen kann, ihre Unteransichten zu laden, ohne dass sie durch Aufrufen dermyViewController.view Getter. Danach kann ich problemlos auf meine Steckdose zugreifen.

Es ist jedoch ein klarer Hack und Xcode mag es - zu Recht - nicht und protestiert verärgert mit dieser Warnung:

Eigenschaftenzugriffsergebnis nicht verwendet - Getter sollten nicht für Nebenwirkungen verwendet werden

Gibt es eine nicht-hackige Alternative, bei der das nicht missbraucht wird?.view Getter? Gibt es alternativ kanonische / idiomatische Muster für dieses Szenario, bei denen beispielsweise dynamisch ein Handler hinzugefügt wird, der aufgerufen wird, sobald die Unteransichten geladen werden?

Oder ist die Standardlösung einfach zu ersetzenmyViewController.view mit[myViewController view] Xcode Warnung zum Schweigen zu bringen, und dann mit dem Hack leben?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage