gpt4 book ai didi

ios - 为每个 View iOS 创建单独的 View Controller ?

转载 作者:行者123 更新时间:2023-12-01 18:35:14 25 4
gpt4 key购买 nike

这是一个非常简单的问题,我相信答案是“是的,这是最佳实践”,但我只是想问这个问题。

在 Xcode 的 Storyboard中创建新 View 时,创建单独的自定义 View Controller 文件来专门处理每个 View 是个好主意吗?

意思是,如果我创建一个名为“login quiz”的新 View ,我是否应该创建一个“loginQuizViewController”来处理我为该 View 编写的所有代码?

最佳答案

简答:

是的,每个 Storyboard场景通常都有一个唯一的 View Controller 类与之关联。 View Controller 有一个根 view ,这又可能在其下方有许多 subview ,并且每个 subview 可能有更多 subview 。这个 View 集合统称为“ View 层次结构”。

长答案:

是的,每个 storyboard “scene”有一个与之关联的 View Controller 。通常这个 View Controller 类是一个特定的 UIViewController特定于该特定 Interface Builder 场景的子类。但是你不一定必须有一个 View Controller 子类,例如,可以使用现有的类之一(例如,这对于导航 Controller 场景或标签栏 Controller 场景并不少见)。

但是,如果您有任何与特定 Storyboard场景相关联的自定义逻辑,那么,是的,您通常会为该特定场景拥有一个独特的 View Controller 子类。

两个小的澄清:

  • 您指的是“测验 View ”。

    这对于口语来说很好,但为了清楚起见,当我们在这个测验中谈论所有内容时,它确实是一个复杂的 View 层次结构,而不仅仅是一个层次结构。

    单个“测验”场景将与唯一的 View Controller 类相关联,并且该 View Controller 类的实例将具有单个“根 View ”(由 view 属性标识),但该 view将有一大堆 subview (例如 ImageView 、按钮、标签等),其中一些可能有自己的 subview 。

    所以一个 Storyboard场景有自己独特的 View Controller 类,但与整个 View 层次结构相关联。
  • 我们经常认为一个场景及其关联的 View Controller 代表您在任何给定时间点可能看到的所有内容,但并不总是一对一的关系。有时你看到的是由几个 Storyboard场景和它们各自的 View Controller 组成。

    例如,如果您使用导航 Controller ,导航 Controller 会处理顶部的导航栏,而您的 View Controller 可能会处理导航栏下方的所有内容。屏幕上可见的内容是由这两个 View Controller 组成的。

    或者,在更极端的例子中,我们可以定义自己的 view controller containers .在下面的例子中,当我们呈现 A 时,我们可以定义屏幕的下半部分由一个完全独立的场景 B 管理,B 有自己的 View Controller :

    enter image description here

    在这种情况下,A 和 B 都有自己的 IB 场景和各自的 View Controller 。通过将“容器 View ”添加到 A 场景(上面屏幕快照中的浅蓝色 UIView)来实现这一点。

    但主要的一点是,您在屏幕上看到的内容可能是由单个 Storyboard场景和 View Controller 捕获的,也可能由多个场景和 View Controller 组成。
  • 关于ios - 为每个 View iOS 创建单独的 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60591585/

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