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];
    }
}

しかし、 TTTableItemがクリックされたTTViewControllerときに、オブジェクト (文字列だけでなく) を渡す必要があります。TTNavigatorのメソッドを使用して、オブジェクトを TTViewControllerに渡すことができることを私は知っています。NSDictionary[[TTNavigator navigator] openURL: query: animated:]

ただし、この URL を から開こうとしているので、クエリオブジェクトTTTableItemを渡すことができる openURL メソッドを使用する方法がわかりません。NSDictionaryNSString

ここでの議論を読みましたが、元の Three20 コードを変更する必要はありません。ちゃんと伸ばせばOKです。

TTViewControllerテーブル項目を開いてオブジェクト ( など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 に答える