【问题标题】:Three20: Make a TTTableItem link to a TTViewControllerThree20:将 TTTableItem 链接到 TTViewController
【发布时间】:2009-11-18 18:43:35
【问题描述】:

我希望我的表格项目显示披露箭头并链接到另一个“详细信息”屏幕。很标准。 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 对象,因为它只需要一个 @ 987654331@“URL”参数。

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

让我的表格项打开TTViewController 并传递一个对象(例如NSDictionary)的最简单方法是什么

【问题讨论】:

  • 我在 Three20 Google Group 上发布了一个类似的问题,如果有解决方案,我会在此处发布。
  • 如何在 TableItem 上执行此操作?我不知道如何在我的数据源中调用 didSelectRowAtIndexPath。

标签: iphone objective-c three20


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多