我正在尝试编写我的第一个 iPad 应用程序,但遇到了问题。
我有一个带按钮的主视图控制器。按下按钮后,它会从 Web 服务器请求信息列表,并返回数据。这些数据,我想放入一个弹出框的表格视图中。
我有主视图控制器,数据被接收回来并放入字典中,然后循环通过以获取几个数据数组。我还有一个可以显示静态表格视图的 Popover 视图控制器。
我的问题是,如何从主视图控制器获取数据(字典或数组)到 Popover 视图控制器?
我真的迷路了。
谢谢
詹姆士
我正在尝试编写我的第一个 iPad 应用程序,但遇到了问题。
我有一个带按钮的主视图控制器。按下按钮后,它会从 Web 服务器请求信息列表,并返回数据。这些数据,我想放入一个弹出框的表格视图中。
我有主视图控制器,数据被接收回来并放入字典中,然后循环通过以获取几个数据数组。我还有一个可以显示静态表格视图的 Popover 视图控制器。
我的问题是,如何从主视图控制器获取数据(字典或数组)到 Popover 视图控制器?
我真的迷路了。
谢谢
詹姆士
您必须牢记两种设计模式:委托和通知。在更一般的方式中,如果模型发生变化,KVO 也有助于更新您的视图。当然,监听通知或充当委托的对象是该视图的控制器,而不是视图本身。
任何时候都有两件事要避免:将内容存储在全局变量或单例中,以及制作充当模型和控制器的“超级对象”。坚持 MVC 范式并尝试松散耦合您的对象并考虑哪个对象拥有哪个其他对象。这对于内存管理很重要,如果您没有正确实现它,它将在稍后回复您。
查看会话 #116 - 来自 WWDC10 会话视频的 iPhone OS 模型-视图-控制器和会话 #123 - 来自 WWDC09 的 iPhone 视图控制器技术。
WWDC10 视频可在苹果的开发者网站上免费获得。
嘿,詹姆斯,我建议你先做好功课,尝试了解所谓的委托结构在大多数 iOS 应用程序中是如何工作的。
更清楚地说,您的主视图控制器将成为委托,而您的弹出视图控制器将成为此类委托的子级。委托负责呈现其子控制器。同时,子控制器负责向其委托控制器请求数据并向其报告任何更改。
所以通过这种方式你的popover控制器可以从你的主视图控制器获取它想要的数据,同时当用户想要关闭popover视图时,popover视图控制器检测到用户的指令并通知主视图控制器解雇它。
几秒钟前描述了另一种可能性: