【问题标题】:UIView and Model View Controller (MVC) patternUIView 和模型视图控制器 (MVC) 模式
【发布时间】:2011-09-12 23:25:08
【问题描述】:

我正在尝试开发一个应用程序来收听 iPod 中的音乐(类似于 AddMusic 示例)。我有一个带有自定义视图的 ViewController,它有一些图形和按钮来管理音乐播放。使用导航控制器,我可以从 iPod 音乐中选择一个列表并将其显示给 UITable(作为 AddMusic)。

现在我必须编写所有方法来管理要播放、停止、正在播放、持续时间等的音乐列表。

我的问题是:

为了遵循模型视图控制器模式,在主 ViewController 或在我有与用户?

我认为答案应该是主 ViewController,但在这种情况下,我如何从拥有用户界面按钮并管理一些图形的视图中访问这些方法?因为 UIView 没有类似“parentViewController”的东西。

非常感谢。

卡尼克

【问题讨论】:

    标签: iphone ios4 iphone-sdk-3.0


    【解决方案1】:

    您可以声明一个完全继承该主 ViewController 的类。在第二个视图控制器中,您可以创建该类的实例。最终,该对象将包含您在主视图控制器中的所有信息。

    【讨论】:

    • 谢谢@Mikayil,我已经尝试过你的想法。我真的没有两个视图控制器。我有 1 个 viewController(我的 mainViewControler)和一个视图(即 [mainViewController setView: myView])。无论如何,我按照你的建议做了我声明了一个新类 -> @interface inheritsFromMyMainViewController : myMainViewController{}。好的,我可以访问 myMainViewController 的方法,但不能访问它的 ivars(也许我做错了什么),因为 (id)sender 是 myView,还有一点是我需要处理 currentTime 才能移动图形.我是对的?
    • 达到对象的 ivars 的约定是通过@property。如果您既没有为 ivars 声明属性,也没有 getter 和/或 setter 方法,则无法访问它们。所以请确保你使用任何一种方式。我当然建议使用@property 方式,因为它可以使用点语法。但我不明白 currentTime 和 move Graphics 东西之间的关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    • 2012-02-12
    相关资源
    最近更新 更多