我完全重新构思了这个问题,得知自己一开始走错了方向,但并没有解决问题。参考以下这张图片…
我想要在代码中创建或操作转场(黄色高亮部分),使得Master视图是MFMasterViewController
的多个子类(红色高亮部分)中任何一个。
当使用NIB文件时,我可以创建一个名为SharedNib.xib
的NIB文件,并将其类设置为MFMasterViewController
,然后创建我的子类,例如MFMasterViewControllerSubclassA
、MFMasterViewControllerSubclassB
等等。然后使用以下代码实例化任何一个子类...
MFMasterViewControllerSubclassA *controller = [[MFMasterViewControllerSubclassA alloc] initWithNibName:@"SharedNib" bundle:nil];
或者...
MFMasterViewControllerSubclassB *controller = [[MFMasterViewControllerSubclassB alloc] initWithNibName:@"SharedNib" bundle:nil];
有什么线索可以告诉我如何在使用故事板时做到这一点?
在我的情况下,我之所以想要这样做,是因为我所有的子类都是相同的表视图和数据,但排序方式不同,并且在单元格的详细文本中写入一些不同的内容。我怀疑这是一个常见的模式。
谢谢和先行赞美, Pedro :)
controller
分配给另一个名为newViewController
的UIViewController
?我会完全摆脱UIViewController
并将第一行改为:MyViewControllerSubclass *controller = (MyViewControllerSubclass *)[[self storyboard] instantiateViewControllerWithIdentifier:@"SharedScene"];
此外,请确保你的子类在init
函数中调用[super init]
。 - Justin PaulsonUIViewController *newViewController = [self methodThatInstantiatesSubclass];
,具体取决于各种条件,该方法会分配MyViewControllerSubclassA
或MyViewControllerSubclassB
等不同的子类。 - Pedro