我正在尝试根据 TTCalog 中的示例将收件人添加到 TTMessageController。
在我进入搜索 Controller 之前一切正常 - 我可以搜索并获得结果,但是当我选择项目时没有任何反应。我尝试设置委托(delegate),但没有任何效果。
- (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 - 这不是很有帮助 ;)
Best Answer-推荐答案 strong>
好的,我找到了答案
上面的代码中缺少一行。我有一种感觉我应该设置委托(delegate),但不知道在哪里:
- (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)tableViewUITableView*)tableView heightForRowAtIndexPathNSIndexPath*)indexPath {
id<TTTableViewDataSource> dataSource = (id<TTTableViewDataSource>)tableView.dataSource;
id object = [dataSource tableView:tableView objectForRowAtIndexPath:indexPath];
Class cls = [dataSource tableView:tableView cellClassForObjectbject];
return [cls tableView:tableView rowHeightForObjectbject];
}
这是处理选择:
- (void) tableViewUITableView *)tableView didSelectRowAtIndexPathNSIndexPath *)indexPath {
TTTableImageItemCell *cell = (TTTableImageItemCell *) [tableView cellForRowAtIndexPath:indexPath];
TTTableImageItem *object = [cell object];
[_delegate MessageAddRecipient:self didSelectObjectbject];
}
关于iphone - Three20 TTTableViewController 和 searchViewController,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/8724900/
|