【问题标题】:What is the three20 method of passing objects between view controllers?在视图控制器之间传递对象的three20方法是什么?
【发布时间】:2011-05-04 04:52:25
【问题描述】:

我有一个基本的 RSS 阅读器,我使用 TTLauncherView 作为不同提要的菜单,并使用 TTTableViewController 来显示提要列表。

但是,我卡在了从提要列表中单击以查看提要项目详细信息的位置。我使用 TTTableImageItem 来显示我的提要项目,但我不知道如何使用所述 TTTableImageItem 中的 URL 变量将对象传递给显示提要项目的视图控制器。

我进行了一些搜索,结果我认为这只能通过 TTURLRequest 完成,这让我更加困惑。

我的大部分代码改编自IOSGuys教程,它使用了自定义数据源、数据模型和解析器。我曾尝试将数据源和数据模型设为单例,但无济于事,我不确定这是否是处理(大概)如此简单的事情的最佳方式。

理想情况下,我打算将整个提要项数组与索引的另一个参数一起传递,这样当我处于更深入的视图时,我就可以使用 UIPageControl 在提要之间滑动。

非常感谢您的帮助!我已经花了太长时间隐约可见了!

【问题讨论】:

    标签: iphone three20


    【解决方案1】:

    通常的做法是使用某种全局单例Data Manager 类,通过核心数据、内存中存储或其他方式管理数据模型。每个模型都有某种唯一标识符。这样做有助于恢复导航历史所需的仅 URL 堆栈,而无需将状态写入文件以进行恢复。您还可以在任何地方打开应用程序中的任何页面,只需一个 URL。只有这样使用 URL 方案才变得微不足道,因为您可以执行以下操作:

    yourapp://blogs/jd82kd9
    

    并让博客视图控制器的init 方法联系具有jd82kd9 唯一标识符的博客的Data Manager

    在您的导航器的映射中,您将拥有如下内容:

    [map from:@"yourapp://blogs/(initWithBlogID:)") toViewController:[MyBlogViewController class]];
    

    然后initWithBlogID 方法将具有签名:

    - (id)initWithBlogID:(NSString *)blogID;
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 设法做到了这一点,尽管它带来了新的问题!
      猜你喜欢
      • 2018-06-22
      • 1970-01-01
      • 2020-06-07
      • 1970-01-01
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多