我不清楚如何重用视图控制器。如果您创建了一个视图控制器子类来执行某些操作(实际上并不重要,它只执行您在视图中需要的操作),它可以与不同的视图一起使用还是应该再次子类化?
换句话说,如果我在应用程序的不同部分的视图中需要完全相同的功能,我可以使用原始视图控制器并从新视图中添加插座吗?或者我应该子类化自定义控制器并为视图提供“自己的”视图控制器?
我不清楚如何重用视图控制器。如果您创建了一个视图控制器子类来执行某些操作(实际上并不重要,它只执行您在视图中需要的操作),它可以与不同的视图一起使用还是应该再次子类化?
换句话说,如果我在应用程序的不同部分的视图中需要完全相同的功能,我可以使用原始视图控制器并从新视图中添加插座吗?或者我应该子类化自定义控制器并为视图提供“自己的”视图控制器?
您可以为视图控制器创建两个 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 的笔尖会发生变化。
另一种方法
只是在这里大声思考。
你也可以创建一个没有 nib 的 ViewController。
然后创建两个子类,每个子类都有一个笔尖。现在您有了代码重用和单独的布局,但您还可以对“主”控制器的每个子类进行精细的控制调整。
然后,您可以从此主视图控制器创建任意数量的子类。
使用故事板
只需将一个新的 ViewController 对象拖到情节提要上。将类更改为视图控制器类并设置 UI 并将控件拖动到代码等...然后您将拥有两个看起来不同但共享相同功能代码的屏幕。
这和我一开始说的一样,但是用故事板代替。