Xcode storyboard 是否可以覆盖默认情节提要?

Xcode storyboard 是否可以覆盖默认情节提要?,xcode-storyboard,Xcode Storyboard,我有一个关于故事板的问题,即我使用故事板很长时间了,直到现在一切都很好。我想重写故事板类中的-(id)instantialeviewcontrollerwhiteIdentifier:(NSString*)标识符方法。我知道我必须添加UIStoryboard类的子类,但我不知道如何指示应用程序应该使用这个子类? 我知道我可以通过编程实现(分配这个子类的对象实例并获取视图控制器),但我想知道——是否有可能告诉Xcode我的e.q.MainstryBoard.storyboard文件类应该被视为我的

我有一个关于故事板的问题,即我使用故事板很长时间了,直到现在一切都很好。我想重写故事板类中的-(id)instantialeviewcontrollerwhiteIdentifier:(NSString*)标识符方法。我知道我必须添加UIStoryboard类的子类,但我不知道如何指示应用程序应该使用这个子类? 我知道我可以通过编程实现(分配这个子类的对象实例并获取视图控制器),但我想知道——是否有可能告诉Xcode我的e.q.MainstryBoard.storyboard文件类应该被视为我的子类

是的,你可以。 最好的方法是子类UIStoryboard并在AppDelegate中以编程方式创建故事板的实例

如果您不想在AppDelegate中创建情节提要,可以使用方法swizzling—用自己的方法替换UIStoryboard的方法实现(请参阅objc/runtime.h header和)


但我认为显式脚本创建比神奇的运行时更好——这对于所有阅读您的代码的人来说都是可以理解的。

这不是我想要覆盖的情况—(id)InstanceEviewControllerWithiIdentifier:(NSString*)脚本中的identifier方法,我希望每次实例化脚本中的view conroller时都调用它。最后,我希望运行时使用的默认UIStoryboard是我创建的(我的UIStoryboard的子cass)——事实就是如此。谢谢,我使用了您在这里指出的示例: