【发布时间】:2012-08-29 10:22:17
【问题描述】:
在得知我最初偏离轨道但我没有更接近解决问题后,我完全重新制定了这个问题。参考这张图...
我想在代码中创建或操作 segue(以黄色突出显示),以便主视图是 MFMasterViewController 的多个子类中的任何一个(以红色突出显示)。
使用 Nibs 执行此操作时,我可以创建一个 Nib,SharedNib.xib 并将类设置为 MFMasterViewController,然后创建我的子类,例如 MFMasterViewControllerSubclassA、MFMasterViewControllerSubclassB 等,然后实例化我想要使用的任何子类。 ..
MFMasterViewControllerSubclassA *controller = [[MFMasterViewControllerSubclassA alloc] initWithNibName:@"SharedNib" bundle:nil];
或者...
MFMasterViewControllerSubclassB *controller = [[MFMasterViewControllerSubclassB alloc] initWithNibName:@"SharedNib" bundle:nil];
等等
关于如何使用情节提要解决此问题的任何线索?
在我的情况下,想要这样做的原因是我所有的子类都是相同的 tableview 和数据,但排序不同,并且在写入 cels 的详细文本方面存在一些差异。我怀疑这是一种并不少见的模式。
干杯和TIA, 佩德罗:)
【问题讨论】:
-
我知道我可以通过在我的情节提要中为每个子类制作一个场景副本来做到这一点,但是当场景完全相同并且所有版本都延续到时,这似乎是一种非常浪费的方式下一个场景相同。
-
故事板中的控制器也是分配给类'MyViewController`的,并且
MyViewControllerSubclass是MyViewController的子类 -
两个问题都是:)
-
我不明白您为什么要尝试将
controller分配给另一个名为newViewController的UIViewController?我会一起去掉UIViewController并将第一行更改为:MyViewControllerSubclass *controller = (MyViewControllerSubclass *)[[self storyboard] instantiateViewControllerWithIdentifier:@"SharedScene"];另外,请确保您的子类在init函数中调用[super init]。 -
这是一个简写。在实践中,以及我在使用 XIB 时所做的事情,它更像是
UIViewController *newViewController = [self methodThatInstantiatesSubclass];,根据不同的条件,MyViewControllerSubclassA或MyViewControllerSubclassB等由方法分配。
标签: ios uiviewcontroller segue uistoryboard uistoryboardsegue