Können Sie die NIB-Datei gegen einen UIViewController austauschen, der bereits auf dem Bildschirm angezeigt wird?

Zum Beispiel:

Erstellen Sie eine neue UIVC mit initWithNibName unter Verwendung von "nib-v1".Zeigen Sie es an, z. mit [(UINavigationController) nav pushViewController: myVC]Ändern Sie die von myVC verwendete NIB in "nib-v2"

Soweit ich sehen kann, ist dies der "richtige" Ansatz für das App-Design vieler Apps, wenn Sie Informationen durchblättern, bei denen Sie zwei leicht unterschiedliche Benutzeroberflächen-Bildschirme für die angezeigten Informationen benötigen.

Zum Beispiel sind die meisten Ihrer Seiten Text, aber einige haben auch ein Bild (denken Sie an einen RSS-Reader, bei dem einige RSS-Einträge Text + Bild enthalten, andere nur Text).

Ich habe mich zuvor mit einer NIB-Datei mit einer zweiten, unsichtbaren Instanz namens UIView befasst, die ich über die erste gelegt und je nach Kontext mit dem Flag "hidden" ein- und ausgeschaltet habe.

Aber das ist eindeutig falsch und verschwendet Speicher.

Es ist jedoch nicht ersichtlich, wie die Ansicht aus der NIB-Datei "neu geladen" werden kann. Ich schätze, ich möchte irgendwie die Magie reproduzieren, die initWithNibName tut?

Ich vermute, dass dies möglich ist, aber ich bin mir sicher, dass die App einfach schrecklich abstürzt, wenn Sie es "auf die falsche Weise" machen.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage