2009-10-22 139 views
2

我对iPhone开发相当陌生,想知道如何从单个控制器加载多个视图。iPhone一个控制器,多个视图

我来自c#背景,仍然试图让我的头在ObjC和iPhone世界的事情如何工作。

作为我想要实现的一个基本示例,可以说我有一个ClockController,时钟控制器具有计算时间的基本方法。

现在我想要做的就是让这个控制器能够呈现任何数量的支持ClockContollers底层接口的视图。可以说我有一个视图将时钟渲染为数字输出,另一个视图将其呈现为模拟显示(我知道的基本示例)。

如何实现这一目标?

对不起,如果这是一个非常基本的问题,但我很新。

在此先感谢

回答

2

这里是我如何MVC应用到你的例子理解:
你在屏幕上绘制有哪些是你的时钟视图控制器类的实例,每个支持内部意见的时钟。这些控制器分别与时钟模型进行交互并适当地更新其视图。在这个类中,将设置属性来确定时钟是数字还是模拟。
听起来像你的“ClockController”真的是一个模型/数据类。你可以只有一个这个模型类的实例,或者你的每个时钟视图控制器(如果它们有不同的时间)。

1

在我的应用程序中,我有许多单个视图控制器的实例,然后使用不同或多个视图来显示UI。您可以使用addSubView将视图及其所有子视图添加到视图控制器,然后使用removeFromSuperview删除该视图及其所有子视图。如果视图仅显示信息并且被分类以处理与视图控制器必须处理的其他视图的差异,则此效果很好。在你的情况下,模拟时钟视图必须以一种方式绘制自己,而数字时钟视图则以另一种方式绘制。控制器只需告诉每个视图什么时间,视图处理翻译为视觉数据。如果您的视图以用户的形式接受拖动模拟手来设置闹钟的输入,则视图子类需要读取该输入,然后转换为闹钟时间并将其传回给视图控制器。控制器不需要知道用户正在与哪种类型的时钟进行交互,但只能看到需要添加到其警报队列的警报时间。但是,当我的视图使用非常不同的用户界面或出于不同的目的时,我通常更喜欢每个视图有一个视图控制器。基本上,我尝试使用我的视图作为显示器,并使用我的viewControllers作为与该视图相关的数据管理器(以及可以由相同数据支持的任何其他视图)。

例如,我的游戏有一个用于播放的视图控制器,另一个用于高分表,另一个用于设置。

+0

酷!感谢解释家伙。这只是证实了我的想法。感谢addSubView参考,我将检查doco的使用细节。 我认为我的主要挑战将会习惯于如何把事情挂在一起......再学会警惕清理那些资源;-) – 2009-10-22 23:06:33

相关问题