iOS表视图和视图控制器

时间:2010-12-18 11:54:14

标签: iphone cocoa-touch ipad ios viewcontroller

我正在尝试编写我的第一个iPad应用程序,但我遇到了问题。

我的主视图控制器带有一个按钮。按下按钮后,它会从Web服务器请求信息列表,并返回数据。这个数据,我想把它放在一个popover的表视图中。

我有主视图控制器,数据被收回并放入字典中,然后通过循环获取几个数据数组。 我还有一个可以显示静态表视图的Popover视图控制器。

我的问题是,如何从主视图控制器获取数据(字典或数组)到Popover视图控制器?

我真的迷路了。

由于

詹姆斯

3 个答案:

答案 0 :(得分:1)

您必须牢记两种设计模式:委派和通知。以更一般的方式,如果模型发生变化,KVO也可用于更新视图。当然,侦听通知或充当委托的对象是该视图的控制器,绝不是视图本身。

在任何时候你都要避免两件事:将东西存储在全局变量或单例中,并制作“超级对象”,让我们说出模型和控制器。坚持MVC范式并尝试松散对象,并考虑哪个对象拥有哪个其他对象。这对于内存管理很重要,如果你没有正确实现它,它会在以后回复给你。

从WWDC10会话视频和会话#123中查看会议#116 - iPhone OS的模型 - 视图 - 控制器 - 来自WWDC09的iPhone视图控制器技术。

WWDC10视频可在Apple的开发者网站免费获取。

答案 1 :(得分:0)

嘿James,我建议你先做功课,试着去了解所谓的委托结构在大多数iOS应用程序中是如何运作的。

更清楚一点,您的主视图控制器将成为委托,您的弹出视图控制器将成为此类委托的。代表负责展示其子控制器。同时,子控制器负责从其委托控制器请求数据并报告任何更改。

因此,通过这种方式,您的弹出控制器可以从主视图控制器获取所需的数据,同时,当用户想要关闭弹出视图时,弹出视图控制器会检测用户的指令并通知主要查看控制器以解除它。

答案 2 :(得分:0)

在几秒钟前描述了另一种可能性:

Passing array between view controllers?