我希望我的表格项目显示披露箭头并链接到另一个“详细信息”屏幕。很标准。 Three20应该有助于此。
在我的TTListDataSource中,我正在做:
- (void)tableViewDidLoadModel:(UITableView *)tableView
{
[super tableViewDidLoadModel:tableView];
// Construct an object that is suitable for the table view system
// from each domain object that we retrieve from the TTModel.
for (Listing *result in [(id<SearchResultsModel>)self.model results]) {
NSString *url = [NSString stringWithFormat:@"myapp://listing", result.theID];
TTTableSubtitleItem *item = [TTTableSubtitleItem itemWithText:result.title subtitle:result.desc imageURL:result.imageURL defaultImage:nil URL:url accessoryURL:nil];
[self.items addObject: item];
}
}
但是当我点击TTTableItem时,我需要将一个对象(不仅仅是一个字符串)传递给TTViewController
。我知道你可以将NSDictionary
对象传递给
TTViewController使用:TTNavigator的[[TTNavigator navigator] openURL: query: animated:]
方法。
但是,由于我正在尝试从TTTableItem
打开此URL,我不知道如何使用openURL方法,我可以传递查询NSDictionary
对象,因为它全部采用NSString
“URL”参数。
我阅读了讨论here但是我真的非常希望避免修改原来的Three20代码。如果可以适当延长,那就没问题了。
最简单的方法是让我的桌子项目打开TTViewController
并传递一个对象(例如NSDictionary
)?
答案 0 :(得分:3)
如果您查看http://three20.info/core/navigation,他们会告诉您如何在不重写didSelectObject
方法的情况下执行此操作。
简而言之,您可以为对象分配URL(通过NSObject的类别),该URL映射到托管表的控制器的URL。然后,处理程序可以打开另一个URL,传递查询字典中的相应对象。
答案 1 :(得分:1)
来自Google群组...... http://groups.google.com/group/three20/msg/5cdbbaf753dc52a1