【问题标题】:View-Based Application? - Please explain基于视图的应用程序? - 请解释
【发布时间】:2010-11-03 11:39:35
【问题描述】:

XCode:“此模板为使用单个视图的应用程序提供了一个起点。它提供了一个视图控制器来管理视图,以及一个包含该视图的 nib 文件。”

这到底是什么意思? (即单视图实际上是什么意思)

1) 这意味着您的应用程序将只有一个处于活动状态的视图屏幕

2) 这意味着您的应用程序将能够使用单个视图控制器拥有任意数量的屏幕。

现在,如果您的应用程序有多个屏幕怎么办?不是单视图屏幕,在基于视图的应用程序模板下仍然适用吗?

示例

Screen1(main):在这个屏幕上有 3 个按钮,“Open Form1”、“Open Form2”、“Open Form3”

当按钮被点击时,它会打开相关的屏幕,

按“打开Form1”按钮打开“Form1”屏幕2

按“打开Form2”按钮打开“Form2”屏幕3

按“打开Form3”按钮打开“Form3”屏幕4

当用户完成表单并提交时,会显示一个感谢屏幕 因此在本例中,总共有 5 个屏幕。

每个表单屏幕包含不同的文本字段输入和信息,这是否被视为基于视图的应用程序?

【问题讨论】:

    标签: iphone objective-c xcode applet


    【解决方案1】:

    基于视图的应用只是一个模板,表明您的应用将基于视图。这意味着您可以拥有任意数量的视图,因为此模板带有一个视图控制器(顾名思义,可用于控制视图......例如,用动画显示/隐藏它们)。

    模板以添加到应用视图控制器的 ONE VIEW 开头。您可以向该控制器添加任意数量的视图。

    所以,是的,你的问题。您可以使用它来创建您提到的应用程序,例如,您提到的任何“屏幕”都将是一个视图,并且您可以使用例如应用程序视图控制器来显示每个视图,以动画显示或隐藏每个视图。

    【讨论】:

    • 谢谢。好的,基于视图的应用程序和基于 Windows 的应用程序之间有什么区别?我阅读了描述,但我仍然不清楚不同之处。
    • 例如,基于窗口的应用程序模板不会附带视图控制器。这些只是模板。您可以使用任何模板来创建您想要的任何类型的应用程序。选择一个不会禁止应用程序做某事。在某些情况下,可能需要选择一个基于窗口的应用程序,例如,如果您的应用程序只有一个视图(在这种情况下您不需要视图控制器)。
    【解决方案2】:

    这意味着模板将创建一个视图和相应的视图控制器以及应用程序委托、主窗口。这也将做必要的事情来将此视图添加到主窗口,并在应用程序运行时加载。这只是一个模板。然后,您可以根据需要创建任意数量的视图和视图控制器。

    【讨论】:

    • 你需要为每个屏幕创建一个新的控制器吗? (我假设我可以使用 1 个控制器来控制多个屏幕,是吗?否?)
    • 是的,您可以这样做,但不建议这样做,除非视图非常原始。
    • 如果屏幕相关怎么办? Screen1(输入信息)、Screen2(查看并确认信息)、Screen3(谢谢回复)。在这种情况下应该有 3 个控制器还是只有 1 个控制器?
    • 在这个特定的示例中,我会更喜欢一个控制器,因为它们密切相关并且不是很复杂。但是假设有主菜单、单独的表格、条款和条件屏幕以及详细描述视图。对于这些,我将使用单独的控制器。其他人可以选择其他方式。这些决定在很大程度上取决于各种因素,如规模、项目的可扩展性等。
    【解决方案3】:

    这意味着您启动项目时使用的模板提供了一个 ViewController,以及与该 View 相关联的 XIB。正如第一个答案所说,您可以使用此模板来构建提到的应用程序。

    但是,您可能希望考虑用户将如何与您的应用进行交互。您是否允许在屏幕上前后移动,在这种情况下,您可能需要考虑基于导航的应用程序,您可以在其中将屏幕推送/弹出到堆栈上,以便在此之间轻松移动。

    您可能还有一个允许用户在每个屏幕页面之间随意跳转的概念,在这种情况下您可能想要实现一个 TabBar 应用程序。

    或者你可以自己实现它。归根结底,这将是您的应用程序设计,而模板只是您前进的起点。我建议,如果您开始使用 iOS 开发,但是使用 1 个 ViewController 为您希望实现的每个屏幕匹配一个 XIB 以保持简单。


    【讨论】:

    • 另外,当您创建多个屏幕时,每个屏幕是否都需要您创建的每个屏幕的视图控制器?或者可以使用视图控制器来控制超过 1 个屏幕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多