对于iOS开发,我仍然相对较新,并且想知道这样做是否是一个好习惯。

例如,假设我有两个不同的上下文,我希望以相同/相似的方式呈现相同/相似的数据,但是存在一些差异,也许从一个上下文到另一个的某些不同按钮,或者我需要做的不同准备数据。我应该只在同一个视图控制器中制作多个配置方法,然后根据需要调用哪个方法,或者拥有两个单独的视图控制器?

我非常倾向于前者是正确的,因为前者看起来效率更高,而且可以节省很多相同的代码,但是我希望有经验的程序员提供一些输入,以防万一。

最佳答案

您应该创建三个视图控制器:SuperViewControllerFirstViewControllerSecondViewControllerFirstViewControllerSecondViewController应该是SuperViewController的子类。然后,您应该考虑以下几点:

变量和属性

SuperViewController中声明视图控制器之间的所有公共变量。

在适当的视图控制器中声明任何特定于视图控制器的变量和属性。

方法

与属性一样,在SuperViewController中定义任何共享方法及其实现。

如果您的方法在视图控制器之间共享某些但不是全部的代码,请执行以下操作:

1)在您的SuperViewController中实现此方法:

-(void)someSemiSharedMethod {
    // put the common code here
}

2)在您的视图控制器中:
-(void)someSemiSharedMethod {
    // call the superclass' implementation of this method
    // to ensure that common code is executed
    [super someSemiSharedMethod];

    // now add any child controller specific code to this method below
}

这似乎是您想要实现的最佳方法。让我知道您是否还有其他问题,或者这种方法不能完全实现您想要的目标。

10-08 12:14