【问题标题】:Three20: How to access the model in the next ViewController?Three20:如何在下一个ViewController中访问模型?
【发布时间】:2011-07-02 15:31:01
【问题描述】:

情况 我用 TTListDatasource(带有 TTModel)填充我的 TTTableViewController。 我的 didSelectObject 方法打开了一个 TTViewController。

问题 我想在 TTViewController 中显示更多信息。

1.问题:我应该交出数据源(并运行新查询)还是交出特定的 VO(包含所有信息)?

2.问:如何在新的TTViewController中访问数据源?

谢谢,

【问题讨论】:

    标签: iphone objective-c three20


    【解决方案1】:

    在您的 TTTableViewController 的 didSelectRowAtIndexPath: 定义中,使用您的 TTListDatasource 获取对相应对象的引用。然后将其传递给您的 TTViewController。这最好通过使用 TTViewController 的属性来完成,这样您就不必担心保留/释放。

    @property (nonatomic, retain) TTModel *model;
    

    然后在 didSelectRowAtIndexPath:

    TTModel *model = //get the correct model
    TTViewController *vc = [[TTViewController alloc] initHoweverYouWant];
    vc.model = mode;
    

    一些提示:TTViewController 听起来不太具有描述性,因为您(正确地)为您的类添加了前缀。也许 TTPhotoViewController 或其他东西可能更具描述性。总是在冗长的一面犯错:)

    此外,我发现让我的 UITableViewController 子类实现 UITableViewDataSource 协议而不是创建单独的对象非常有用,除非出于完全相同的原因将在其他地方使用完全相同的数据源。如果您也使用核心数据,这与 NSFetchedResultsController 配合得更好。

    【讨论】:

      猜你喜欢
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      相关资源
      最近更新 更多