假设我有一个storyboard
场景,其中UIViewController
的自定义类设置为ParentViewController
。我想创建一个ChildViewController
来完成几乎所有与ParentViewController
相同的操作,但只能自定义一些行为。 ParentViewController
的{{1}}从故事板加载场景。
我现在拥有init
子类ChildViewController
。当ParentViewController
的{{1}}通过[super init]调用ChildViewController
的{{1}}时,ParentViewController将加载场景,从而使我的班级成为init
虽然它是ParentViewController
。之后调用ParentViewController的方法。
我可以通过使用策略模式解决这个问题,为视图控制器对象提供根据需要自定义行为的对象。但是我正在使用的代码也关闭了类类型,所以我真的需要一个init
来保持ParentViewController
,或者逻辑顺序做错了。
问题1:在这种情况下,使用ChildViewController
将类设置回原来是否安全?
问题2:如果我这样做,我不再需要策略了吗?我假设一旦该类被设置回来,将调用适当的子类方法。
我只是担心当框架首先为我改变它时改变类可能会破坏别的东西。