Three20:如何在下一个ViewController中访问模型?

时间:2010-02-20 18:42:38

标签: iphone objective-c three20

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

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

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

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

感谢,

1 个答案:

答案 0 :(得分:0)

在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更有效。