4

我希望我的表格项目显示披露箭头并链接到另一个“详细信息”屏幕。很标准。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];
    }
}

但是我需要在单击TTTableItemTTViewController时将一个对象(而不仅仅是一个字符串)传递给。我知道您可以使用以下方法将对象传递给 TTViewControllerTTNavigator的方法。NSDictionary[[TTNavigator navigator] openURL: query: animated:]

但是,由于我试图从 a 打开这个 URL TTTableItem,我不知道如何使用 openURL 方法来传递一个查询NSDictionary对象,因为它都作为一个NSString“URL”参数。

我在这里阅读了讨论,但是我真的非常想避免修改原始 Three20 代码。如果它可以适当地扩展,那就没问题了。

我可以让我的表项打开 aTTViewController并传递一个对象(例如 an NSDictionary的最简单方法是什么?

4

2 回答 2

3

如果您查看http://three20.info/core/navigation,他们会向您展示如何在不覆盖该didSelectObject方法的情况下执行此操作。

简而言之,您可以将 URL 分配给对象(通过 NSObject 的类别),该对象映射到托管表的控制器的 URL。然后,处理程序可以打开另一个 URL,传递查询字典中的适当对象。

于 2009-12-05T23:56:27.420 回答
1

来自 Google 群组... http://groups.google.com/group/three20/msg/5cdbbaf753dc52a1

于 2009-11-19T05:43:28.387 回答