有多少控制器应该有一个带有Swift的Xcode项目

有多少控制器应该有一个带有Swift的Xcode项目,swift,Swift,我正在使用Swift在Xcode中创建发票应用程序。例如,我可以在一个文件AppController中实现所有逻辑。不幸的是,代码太多,结果很混乱。我想知道哪种做法更好,如何在不同的控制器中传播逻辑?有与windows相关的代码。有一些与核心数据等相关。将其分为三部分: 1) 将所有UI设计保留在.xib或脚本中 2) 使用数据模型存储数据 3) 使用控制器对逻辑进行编码、显示数据并相应地更改用户界面。将所有内容放在一个文件中绝对不是一种好办法 每个屏幕都应该有自己的视图控制器 在大多数情况下,

我正在使用Swift在Xcode中创建发票应用程序。例如,我可以在一个文件AppController中实现所有逻辑。不幸的是,代码太多,结果很混乱。我想知道哪种做法更好,如何在不同的控制器中传播逻辑?有与windows相关的代码。有一些与核心数据等相关。

将其分为三部分:

1) 将所有UI设计保留在.xib或脚本中

2) 使用数据模型存储数据


3) 使用控制器对逻辑进行编码、显示数据并相应地更改用户界面。

将所有内容放在一个文件中绝对不是一种好办法

  • 每个屏幕都应该有自己的视图控制器
  • 在大多数情况下,将UI代码保留在视图控制器中。这不是一条硬性规定,但您应该尽量将非UI代码控制在最低限度
  • 创建实用程序类以将代码移出控制器
  • 将数据处理分离到它自己的类或类集合中,特别是如果它是大量代码的话
  • 尽可能多地使用故事板
  • 为函数和变量命名,以便查看代码的人(包括您)可以很容易地看到它试图做什么
  • 感谢@PEEJWEEJ指出 和。 这些都是重要的概念


    记住,没有真正正确的答案

    基本上,您可以采用当前视图,并尽可能多地将其分为多个组件。假设您有一个显示屏幕类似于任何社交时间线的应用程序,您可以先将其组件如下所示进行分离:

    这些成分可以分为更小的成分:

    所有这些组件可以是任意多个控制器,只要您认为有必要(根据代码的复杂性):

    viewController.swift
    设置控制器.swift
    按钮1
    按钮1
    feederController.swift
    navbarController.swift


    注意,您不希望重新创建所有内容,例如,这里的导航栏可以由
    选项卡栏控制器处理

    并非所有UI设计都必须在XIB或故事板中。我经常以编程方式创建自定义组件+我同意你的看法。一般来说,对于常规设计,我将把UI设计留给.xib或故事板。任何需要定制的用户界面都需要编码的帮助(例如添加动画)。您提出的问题非常广泛。但是,通常的规则是:将代码拆分为单独的函数和模块越多,代码质量越好。我不确定自己是否理解得很好。在我的AppController中,我有一些函数,它们可能用于单独的模型类,如:delete Partner,addPartner等。我的问题是,如果它们在单独的类中,如何在控制器中调用它们。我是否需要在控制器的构造函数中创建一次实例,然后在需要它们的地方访问它们,或者每次都创建新实例?在更简单的情况下,是:如果需要从
    控制器调用方法
    addPartner
    A
    ,您必须对
    控制器A
    进行实例化。因此,我们可以想象您创建了一个控制器
    PartnerController
    ,用于管理您的合作伙伴,该控制器具有诸如
    addPartner
    deletePartner
    等方法。。。因此,在您当前的控制器中,您将使用类似于
    let myPartnerController=PartnerController()
    的东西实例化
    PartnerController
    ,并从实例中调用方法:
    myPartnerController.addPartner()