gpt4 book ai didi

iOS MVC 架构 - 除了 View Controller 的 View 之外的独立 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:09 25 4
gpt4 key购买 nike

概览

  • 我正在做一个使用 MVC 架构的 iOS 项目。请原谅我的无知,我只是很困惑,我正在寻找一个好的设计。
  • 我计划使用的 View 将包含一些按钮以及一些标签和文本字段。我的观点不需要任何定制drawRect 的实现。
  • 关于按下按钮或事件发生时需要做什么的所有逻辑都在我的 View Controller 中

我有几个疑问:

  1. 对于上述情况,创建单独的 View ( View Controller View 以外的 View )是否更好(良好做法)?如果是,为什么?

  2. 除了绘制和显示 View (在我的项目中,我没有太多) View 的实现代码还应该是什么 包含 ?

  3. 我想在用户触摸文本字段并且键盘出现时禁用一组按钮。

    a) 那么我是否应该将禁用某些按钮的逻辑放在单独 View 的实现中(在问题 1 中创建的 View )?

    b) 从我的父 View (在问题 1 中创建的 View )中,我可以为按钮( subview )创建导出以禁用某些按钮吗?我无法做到这一点。或者我应该使用 subviews 方法并循环访问我正在寻找的按钮吗?

我的理解

  1. 模型包含数据

  2. View负责显示,不应该包含业务 逻辑。

  3. View controller 是唯一在模型和 View 之间进行交互并包含业务逻辑的 Controller

最佳答案

  1. 无需创建单独的 View —— View Controller 的 View (通常只是一个普通的 UIView)当然可以包含您的按钮和文本字段。如果您确实想将其中一些放在单独的容器中(也许这样您可以将它们作为一个组移动),您可以为此使用普通的旧 UIView。

  2. View 是响应者,因此如果您想进行任何特殊的触摸处理,UIView 子类可以覆盖触摸处理方法。

  3. a) 通常将管理 View (例如禁用按钮)的代码放在 View Controller 中。 b) 同样,您通常会将按钮的 socket 放在 View Controller 中。

当人们谈论“业务逻辑”时,他们通常指的是维护和操作应用程序处理的数据所需的逻辑。这类东西通常最好放在模型中。另一方面,管理 View 的代码,例如启用或禁用按钮或将数据从模型移动到 View (反之亦然)属于 View Controller 。

关于iOS MVC 架构 - 除了 View Controller 的 View 之外的独立 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com