多个视图控制器和一个视图笔尖

时间:2014-05-14 14:49:09

标签: ios uiviewcontroller uikit

我想实现以下目标:

我有一个nib,它有一个负责该视图的View Controller。

我想编写从此视图控制器继承的类,因此与基本视图控制器共享相同的nib文件,但添加其他特定代码。我可以在基本视图控制器中构建大量功能但是它会变得混乱;我真的希望能够使用一个nib具有相同的基本结构,然后具有添加其他功能的子类。

我遇到的麻烦是使用基类的视图实例化(在代码中)子类。

我尝试过[NSBundle nibWithNibName:...]和[[vc alloc] initWithNib:...] - 它们都会出错。

我是否将文件的所有者设置为基类?我是否为基类设置视图的自定义视图控制器?我如何实现这一目标?

由于

2 个答案:

答案 0 :(得分:6)

要设置从视图控制器到视图或子视图的出口,您必须将笔尖中的文件所有者设置为视图控制器的类。

实际视图控制器可以是在nib中声明为File的所有者的类的子类。但是 outlet 仍然必须在超类中,或者您无法使用其他子类加载。

例如,让我调用视图控制器SuperVC,Sub1VC和Sub2VC。然后:

  • 在SuperVC中定义所有所需的出口

  • 将nib中的文件所有者声明为SuperVC

  • 在笔尖中绘制所有出口连接,当然包括view

现在说:

Sub1VC* vc = [[Sub1VC alloc] initWithNibName:@"nibname" bundle:nil];

或者:

Sub2VC* vc = [[Sub2VC alloc] initWithNibName:@"nibname" bundle:nil];

他们都会工作。

答案 1 :(得分:0)

听起来我需要设置视口。

这是一个非常常见的错误。只需control + drag从文件所有者(基本视图控制器)到顶级视图,然后设置view的出口。