So ändern Sie zur Laufzeit einen UIViewController-Klassennamen in einem UIStoryboard

Ich habe diesen UIViewController in meinem Storyboard eingerichtet, mit all den Ausgängen, Ansichten und Einschränkungen, die ich benötige. Perfekt. Nennen wir diesen WatchStateController, er dient als abstrakte Elternklasse.

Ich habe dann diese Unterklasse von WatchStateController, WatchStateTimeController genannt, die die Funktionalität hat, die ich für einen bestimmten Zustand der Anwendung benötige.

Da ich versuche, den 1-View-Controller im UIStoryboard zu verwenden, habe ich einige Probleme beim Instanziieren eines WatchStateTimeControllers als Typ WatchStateTimeController - er wird als WatchStateController instanziiert.

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

WatchStateTimeController *timeController = (WatchStateTimeController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"WatchStateController"];

Dies liegt daran, dass das Feld "Klasse" im Identitätsinspektor des Storyboards auf "WatchStateController" festgelegt ist. Die Frage ist also, wie ich diesen im Identitätsinspektor festgelegten Klassennamen nur zur Laufzeit ändere.

HINWEIS: ignorierenWarum Ich versuche das zu tun und mich darauf zu konzentrierenWie. Wenn Sie wirklich wissen müssen, warum, können Sie sich über das Strategie-Entwurfsmuster informieren.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage