为两个视图控制器使用一个故事板定义

时间:2013-07-21 08:51:59

标签: objective-c cocoa-touch uiviewcontroller storyboard subclass

是否可以使用具有两个视图控制器的视图控制器的一个故事板设置?

情况:我在故事板中创建了一个视图控制器的视图。这个允许用户添加新的数据条目。让我们称之为MyNewEntryViewController。这很好用。现在我需要一种方法来编辑我的数据条目。为此,我只想继承我的第一个视图控制器并在需要的地方进行调整。让我们称之为MyEditEntryViewController

我会在我的故事板上使用MyNewEntryViewController加载instantiateViewController…

MyNewEntryViewController *newEntryViewController = [storyboard instantiateViewControllerWithIdentifier:@"NewEntryViewController"];

这很有效。

如果我想现在实例化我的新视图控制器怎么办?尝试显而易见的

MyEditEntryViewController *editEntryViewController = [storyboard instantiateViewControllerWithIdentifier:@"NewEntryViewController"];

导致MyNewEntryViewController存储在我的变量中,因为这是我在该故事板中定义的内容。

那么,最好的方法是使用我的故事板定义并能够使用两个不同的视图控制器?你们是怎么做到的?

谢谢!
-f

1 个答案:

答案 0 :(得分:1)

不,这是不可能的。使用普通的旧xib可以做到这一点。然后,您可以在initWithNibNamed:bundle:视图控制器时指定笔尖的名称。

然而,我认为值得退后一步。这样做真的是个好主意吗?子类化视图控制器可能会变得混乱。视图控制器旨在成为自包含的功能单元,这与子类化不一致。除非视图控制器专门设计为子类,否则我会避免这样做。我建议您合并两个视图控制器并覆盖setEditing:animated: