在多个视图控制器中轻松重用一堆代码的最佳做法是什么?

时间:2014-10-04 17:40:07

标签: ios uiviewcontroller

我对编程感到陌生,并对某个(最佳)练习感到奇怪:

假设我们有一个带有多个视图控制器的应用程序。在我们的案例中,大多数人需要提醒用户某些情况,使用活动指示器或依赖其他类似的一般功能。到目前为止,我已经学会了如何实现这些方法,但之后只需在需要时将整堆代码复制到每个视图控制器。这样做,每个视图控制器都充满了大量额外的代码。我知道可以使代码类型为" global"通过将其移动到视图控制器的顶部,在类括号外。但是,由于我们需要确保在调用这些方法时将某些子视图添加到右视图控制器中,我还不确定最佳方法 - 一般来说 - 是什么。

在定义这样的时候,是否有一种常用的做法与我的方法不同 - 让我们说 - 在多个视图控制器中使用的警报行为(定义变量/常量及其所需的方法)?

2 个答案:

答案 0 :(得分:3)

Objective-C提供了两种重用代码的一般方法:

  1. 继承基类,
  2. 使用共享功能。
  3. 第一种情况很简单:如果您需要多个视图控制器中的特定功能,请使用共享方法创建基本视图控制器,然后从中派生其他视图控制器:

    @interface BaseViewController : UIViewController
    -(void)sharedMethodOne;
    -(void)sharedMethodTwo;
    @end
    @interface FirstViewController : BaseViewController
    ...
    @end
    @interface SecondViewController : BaseViewController
    ...
    @end
    @interface ThirdViewController : BaseViewController
    ...
    @end
    

    第二种情况既可以作为带有类方法的助手类(即使用+而不是-)实现,也可以用独立的C函数实现。

答案 1 :(得分:0)

您应该查看可以从控制器级别移动到视图级别的内容。听起来你正在重复使用一堆视图,所以我会创建可以实现自己的UIView的子类。然后在视图控制器中,您可以处理视图应该出现的时间以及与之关联的数据,但您不需要重写如何实现视图。