22

我是故事板的新手。我曾经使用代码制作我的视图。我有个问题。

我创建了一个视图控制器

@interface FunctionViewController : UIViewController

我已经使用我的代码添加

  1. 全屏按钮(alpha:0.5)
  2. 中间的弹出式视图(不是全屏)

然后我创建了另一个 Viewcontroller

@interface PlayFunctionViewController : FunctionViewController

并在弹出式视图上添加一些视图

我想通过使用情节提要重新创建这些东西。

如何使用界面构建器和情节提要构建这些,这样我就不需要在 FunctionViewController 的每个子类中布局全屏按钮和弹出式视图?

4

2 回答 2

12

您不能在情节提要的子类中继承超类的布局,即,如果您在情节提要的视图控制器中直观地布置元素并将它们连接到代码、该视图控制器的子类,甚至是相同的其他实例类,必须单独布局,并且不会自动填充或更新。

换句话说,在情节提要中,您必须手动布置和连接您添加到情节提要的每个单独实例和子类中的所有界面元素。这为您提供了灵活性,您可以在整个应用程序中重用同一类的多个实例并以不同的方式布局它们,但它不给您继承布局的能力。

如果您想在子类中继承布局,请在viewDidLoad超类中以编程方式进行布局,然后所有子类都将具有这些界面元素,即使您在情节提要中设计和布局它们(它们在故事板,但它们会在您构建和运行应用程序时出现)。


基本上,如果您想在一个类及其所有子类中拥有相同的界面元素,请以编程方式创建它们,它们将存在于所有实例和子类实例中,即使您在情节提要中创建和设计实例本身也是如此。

您可以混合使用代码和情节提要,因此您可以在情节提要中创建一些元素,但其他需要在代码中出现在所有实例和子类中的元素。

于 2013-05-11T06:24:47.583 回答
1

我遇到了类似的问题,虽然这很耗时,但创建一个委托并在多个视图控制器中重用它是一个更好的解决方案。虽然这超过了“继承”的全部意义。

于 2014-09-19T07:28:55.203 回答