ewController和searchViewControlle

ewController和searchViewControlle

我正在尝试根据来自TTCatalog的示例将收件人添加到TTMessageController。
一切正常,直到我进入搜索控制器-我可以搜索并获取结果,但是选择项目后什么也没发生。我试图设置代表,但是没有用。

- (void)loadView {
    [super loadView];

    TTTableViewController* searchController = [[TTTableViewController alloc] init];
    searchController.dataSource = [[FriendsDataSource alloc] initWithApi:self.appDelegate.api];
    searchController.variableHeightRows=YES;
    self.searchViewController = searchController;
    self.tableView.tableHeaderView = _searchController.searchBar;
}

在TTCatalog中,搜索项具有指向google的URL-不是很有帮助;)

最佳答案

好的,我找到了答案:)

上面的代码中缺少一行。我觉得我应该任命代表,但不知道在哪里:

- (void)loadView {
    [super loadView];

    TTTableViewController* searchController = [[TTTableViewController alloc] init];
    searchController.dataSource = [[FriendsDataSource alloc] initWithApi:self.appDelegate.api];
    self.searchViewController = searchController;
    _searchController.searchResultsTableView.delegate=self;
    self.tableView.tableHeaderView = _searchController.searchBar;
}

然后添加足够的高度以允许可变高度:
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {
    id<TTTableViewDataSource> dataSource = (id<TTTableViewDataSource>)tableView.dataSource;

    id object = [dataSource tableView:tableView objectForRowAtIndexPath:indexPath];
    Class cls = [dataSource tableView:tableView cellClassForObject:object];
    return [cls tableView:tableView rowHeightForObject:object];
}

这可以处理选择:
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    TTTableImageItemCell *cell = (TTTableImageItemCell *) [tableView cellForRowAtIndexPath:indexPath];
    TTTableImageItem *object = [cell object];
    [_delegate MessageAddRecipient:self didSelectObject:object];
}

关于iphone - Three20 TTTableViewController和searchViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8724900/

10-12 23:59