2012-01-04 1 views
2

TTCatalog의 예를 기반으로 TTMessageController에받는 사람을 추가 구현하려고합니다. 검색 컨트롤러에 들어갈 때까지 모든 것이 잘 작동합니다. 검색하고 결과를 얻을 수 있지만 항목을 선택할 때 아무런 반응이 없습니다. 나는 대의원을 설정하려했지만 아무도 작동하지 않습니다. TTCatalog에서Three20 TTTableViewController 및 searchViewController

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

, 검색 항목은 Google에 지시 URL이 - 그것은 매우 도움이 아니에요을)

+0

정확히 같은 질문을 게시하려고했습니다. – Dimme

+0

당신이 이미'- (void) didSelectObject : (id) object atIndexPath : (NSIndexPath *) indexPath { [_delegate searchTestController : self didSelectObject : object]; } '맞습니까? – Dimme

+0

나는 대의원이 ... 놓친 것을 놓쳤다. –

답변

2

OK, 나는 발견했습니다

한 줄이 누락 된 답 : 위의 코드. 내가 대리자를 설정해야합니다 느낌이 있었지만, 어디 몰랐 :

- (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]; 
} 
+0

나는 당신이 그곳에서 한 것을 본다. 좋은 방법은'UITableViewDelegate'를 설정하는 것입니다. 그러나, 나는 Three20이 조금 더 지능적 일 것을 기대하고 있었고 어떻게 든 당신을 위해 이것을했습니다. 어쨌든, 당신은 내 문제를 해결했습니다. 고마워요! – Dimme