2011-01-25 10 views
0

私はここでUISearchBariphoneのキャッシングの問題 - UISearchbar

を使用して動的前方検索を使用して、それが2つの景色を眺めることができdoes..Iものですアプリを持っています。 (一覧)& B(詳細)

ビューAで、私は、ユーザーが何もして、下記のリストを入力することができUISearchBarは、外部のWebサービスAPIから動的に(コピーされた配列を使用しています)すなわち

に更新されますしています「WORD」と入力してください 彼はWで始まります リストに「WA」、「WB」、「WC」、「WD」などが表示されます これで2番目の文字Oそうだから、リストは、ユーザがWO入力した彼は、Li内のいずれかのオプションをクリックした時点でなど、

を「WO1」、「WO 2」、「WO3」を表示します )今用語は「WO」で検索WO2、WO2と言うと、彼は詳細に移動します。WO2 彼はそこから後ろをクリックします...再びWO1、WO2、WO3 ...

ここに私の質問です。リストにWO1、WO2、WO3が表示されているにもかかわらず、WO1のクリック(すなわち、前のリストの最初の項目(私は.. '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何にラインに沿っているか、ほぼ正確に提供したコードを問題は私が間違った詳細なビューを常に得ることはありません...それは矛盾しています。その1回私は正確な詳細ページと2回目、完全にdiffを取得する可能性があります。 – testndtv

+0

この問題のソースコードは参考になります。フィルタリングされたリストにオブジェクトを表示させるにはどうしましたか? –

+0

私はソースコードを今追加しました – testndtv