首页 文章

如何以编程方式子类化存储在Storyboard中的UIViewController?

提问于
浏览
3

我正在开发我的第一个iPad应用程序并首次使用Storyboard .

我的Storyboard中有UITableViewController,它为自定义单元格使用“Dynamic Prototypes” .

我想要做的是以编程方式实例化我的UITableViewController子类,但从Storyboard加载超级视图控制器 .

这是因为我有一个UI但是有多个子类用于每个不同实例所需的特定功能 .

这对.xib文件非常容易,我会编写以下代码:

MyViewControllerSubClassA *viewControllerA = [[MyViewControllerSubClassA alloc] initWithNibName:@"generalViewControllerNib" bundle:nil];

MyViewControllerSubClassB *viewControllerB = [[MyViewControllerSubClassB alloc] initWithNibName:@"generalViewControllerNib" bundle:nil];

我知道我可以在单击View Controller时在Storyboard编辑器中分配一个子类,但我想在实例化时以编程方式设置子类 .

这似乎与Storyboard无关,因为它们会自动实例化 .

这使得Storyboard的整个概念看起来有缺陷而且不是很好 .

如果我将View Controller移出Storyboard并进入.xib文件,我将无法使用Dynamic&Static Prototypes单元格,因为只有在使用Storyboard时才支持这些单元格 . 此外,Apple的文档基本上说从现在开始使用Storybaords .

1 回答

  • -1

    我会尝试这样的事情:

    MyViewControllerSubclassA *controllerA = (MyViewControllerSubclassA *)[self.storyboard instantiateViewControllerWithIdentifier:@"myGenericVC"];
    

相关问题