2

我想知道是否必须为我拥有的每个视图创建一个新的 ViewController。假设我有 3 个视图,我需要 3 个视图控制器还是 1 个视图控制器可以管理所有 3 个视图?

编辑:视图是我使用 .xib 文件创建的对象,因此遵循 Xcode 4.3.3 给我的描述:表示它在其中绘制和接收事件的矩形区域。我的情况:我想要的是显示 3 个按钮的主视图,每个按钮都指向一个新视图。就是这样,这 3 个视图中的每一个都有相同的东西,一个 tableView 来显示从 XML 解析的数据。

再次感谢!

结束编辑

谢谢

4

5 回答 5

3

两者都是可能的,取决于您的需求。视图控制器可以轻松管理多个(子)视图(例如,每个 UI 控件都是 UIView 的子类,并且您可以在单个视图控制器中拥有多个)。有时将视图放在不同的视图控制器中更方便,有时则不然。

于 2012-06-28T13:35:46.940 回答
2

取决于您的情况以及您想要呈现给用户的内容。如果这 3 个视图控制器具有非常相似的功能并且只有很小的差异,那么您可以使用相同的类并有一个实例变量来指示您处于哪种模式。例如,如果您有一个歌曲、播放列表或视频列表,那些可以是同一个类,使用枚举变量来区分 3 种模式。但是,如果您的视图有很大不同(例如歌曲列表和视频播放器),那么您通常应该为它们设置单独的类。

于 2012-06-28T13:36:47.563 回答
2

对于 iOS,一般的最佳实践是使用单个视图控制器来管理单个“屏幕”(或“窗口”,当然 iOS 设备上只有其中一个)。这个视图控制器可能支持可变数量的视图对象(当然不是 1:1 视图/视图控制器的比例)。

从 iOS 5 开始,现在在技术上支持嵌套多个视图控制器在单个窗口中管理多个视图,但我仍然认为这是最好避免的做法。

一个窗口 = 一个视图控制器 = 多个视图。

于 2012-06-28T13:57:38.333 回答
1

在一个视图控制器中,您可以管理任意数量的视图。

于 2012-06-28T13:37:38.547 回答
1

最好为每个视图使用一个视图控制器。该方法的优点如下:

  1. 您可以随时转换应用程序的模板。(例如,从表格视图到选项卡视图或拆分视图可以快速更改)

  2. 每个视图控制器都遵循 MVC 架构。

  3. 如果您有 n 个控制器,而不是尝试管理 n 个 MVC 模型,以便您可以轻松地在任何地方移动任何模型。

  4. 内存管理将很容易(推送和弹出自动管理内存。)

  5. 如果我们有一个视图控制器和 n 个视图,那么管理内存将非常困难。此外,我们需要保留每个视图的屏幕 ID,并且还需要维护它们的切换。

如果您使用 N 个视图控制器而不是 N 个视图,则有 N 个优势。

于 2012-06-28T13:45:01.460 回答