我在我的故事板中设置了这个 UIViewController,其中包含我需要的所有插座、视图和约束。完美的。我们称之为 WatchStateController,它将作为一个抽象父类。
然后,我有了 WatchStateController 的这个子类,称为 WatchStateTimeController,它将具有应用程序特定状态所需的功能。
因为我试图在 UIStoryboard 中使用 1 个视图控制器,所以在将 WatchStateTimeController 实例化为 WatchStateTimeController 类型时遇到了一些问题 - 它实例化为 WatchStateController。
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
WatchStateTimeController *timeController = (WatchStateTimeController *)[mainStoryboard instantiateViewControllerWithIdentifier:@"WatchStateController"];
这是因为情节提要的 Identity Inspector 中的“Class”字段设置为“WatchStateController”。所以问题是,我如何仅在运行时更改 Identity Inspector 中设置的这个类名?
注意:忽略我为什么要这样做并专注于如何. 如果你真的必须知道为什么,你可以阅读策略设计模式。