重用视图控制器

时间:2012-12-13 16:41:26

标签: objective-c ios uiviewcontroller

我不清楚如何重用视图控制器。如果你已经创建了一个视图控制器子类来完成一些事情(它的作用并不重要,只是它在视图中你需要它),它可以用于不同的视图还是应该再次被子类化?

换句话说,如果我在应用程序的不同部分的视图中需要完全相同的功能,我可以使用原始视图控制器并只添加新视图中的插座吗?或者我应该将自定义控制器子类化并将视图赋予其“自己的”视图控制器?

1 个答案:

答案 0 :(得分:3)

您可以为视图控制器创建两个xib。

如果您有文件......

MyViewController.m
MyViewController.h

然后你可以添加xibs ......

MyViewControllerXib1
MyViewControllerXib2

只需制作“文件所有者”MyViewController。

然后当您需要第一个XIB的UI布局时,您可以调用...

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyViewControllerXib1" bundle:[NSBundle mainBundle]];

当您需要第二个UI时,您可以调用...

MyViewController *controller = [[MyViewController alloc] initWithNibName:@"MyViewControllerXib2" bundle:[NSBundle mainBundle]];

您获得的对象将是相同的,但是布局UI的笔尖将会改变。

另一种方法

在这里大声思考。

您也可以创建一个没有笔尖的ViewController。

然后使用nib创建两个子类。现在你有代码重用和单独的布局,但你也可以对你的“主”控制器的每个子类进行精细的控制调整。

然后,您可以从此主视图控制器创建任意数量的子类。

使用故事板

只需将新的ViewController对象拖到故事板上即可。将类更改为视图控制器类并设置UI并将控件拖动到代码等...然后,您将有两个看起来不同但共享相同功能代码的屏幕。

这与我最初所说的相同,但改为使用故事板。