2011-01-25 1 views
0

I가 UISearchBar아이폰 캐싱 문제 - UISearchbar

를 사용하여 동적 앞으로 검색을 사용하는 응용 프로그램 다음

는이 전망이 does..I 것입니다; A (목록) & B (세부 사항)보기 A의

, 나는 외부 웹 서비스 API에서 즉, 사용자가 아무 것도 입력 할 수 있으며 아래에 동적으로 업데이트되는 목록 (배열을 복사 사용합니다) 어디 UISearchBar가

사용자가 "WORD"를 입력해야하는 시나리오를 말하십시오 그는 W로 시작합니다 그러면 목록에 "WA", "WB", "WC", "WD"등이 표시됩니다 이제 두 번째 문자 O 이제 검색 용어는 "WO"입니다. 목록에 "WO1", "WO2", "WO3"등이 표시됩니다.

사용자가 WO를 입력 한 후 li의 옵션 중 하나를 클릭하면 그가 WO2, WO2, WO3, ... WO30, WO2, WO3, ...을 다시 보여줍니다.

이제 여기 내 질문이 있습니다. 목록에 WO1, WO2, WO3이 표시되어 있더라도 WO1을 클릭합니다. "WA"(즉, 이전 목록의 첫 번째 항목 (i .. 'W'만 입력 할 때)

이전 색인 값을 캐싱하는 것 같아서 ... 제발 도와주세요. 발행물.

대부분의 경우 배열을 사용하고 있습니다. 검색 결과, 푸시 세부 정보 등

답변

0

주 목록의 데이터 원본 및 UISearchDisplayController의 데이터 원본에 대한 코드를 제공하십시오.

tableView:didSelectRowAtIndexPath:에 잘못된 개체가있어 세부 정보 컨트롤러로 전송하는 것 같습니다.

어쨌든, 당신은 indexPath에 적합한 개체를 가져 목록보기 컨트롤러에 tableViews 사이를 전환해야합니다

- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
    } 

    if (aTableView == self.searchDisplayController.searchResultsTableView) 
    { 
     // configure cell for object from filtered by keyword list 
    } 
    else 
    { 
     // configure cell for object from unfiltered list 
    } 
} 

- (void)tabeView:(UITableVIew *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [self tableView:aTableView cellForRowAtIndexPath:indexPath]; 
    // get object according to cell and push it to details controller 
} 
+0

내가이를 have..See 무슨 라인을 따라 또는 거의 정확한 제공 한 코드를 문제는 내가 항상 잘못된 세부 정보를 얻지 못한다는 것입니다 ... 일관성이 없습니다 ... 한 번 정확한 세부 정보 페이지와 두 번째 정보를 얻을 수 있습니다. 완전히 다릅니다. – testndtv

+0

이 문제의 소스 코드가 도움이 될 것입니다. 필터링 된 목록에 표시 할 개체를 어떻게 얻었습니까? –

+0

소스 코드를 지금 추가했습니다 – testndtv