2011-01-25 65 views
0

我有一個使用使用的UISearchBariphone緩存的問題 - 的UISearchBar

動態正向搜索應用程序

下面是它does..I有2次; A(列表)& B(詳細信息)

上觀看,我有一個UISearchBar,用戶可以從外部Web服務API鍵入任何東西,下面的列表會動態更新(採用複製陣列),即

說一個場景,用戶必須輸入「WORD」 他將以W 開頭,因此列表將顯示「WA」,「WB」,「WC」,「WD」等 現在他將鍵入第二個字母O所以搜索詞現在是「WO」) 因此列表將顯示「WO1」,「WO2」,「WO3」等

在用戶鍵入WO並點擊li中的一個選項st說WO2,他會被帶到細節abt WO2 他從那裏點擊...因此,他再次顯示WO1,WO2,WO3,...

現在,這是我的問題..如果他現在點擊WO1,儘管該列表顯示WO1,WO2,WO3,...他被帶到了有關「WA」的詳細信息(即在上一個列表中的第一個項目(我只在'W'時輸入)

因此,似乎有一些緩存abt以前的指數值,它似乎... 你能幫我問題。

我使用大部分事物的數組。搜索結果,推送細節等

回答

0

請提供主列表的DataSource和UISearchDisplayController的DataSource的代碼。

看來,在tableView:didSelectRowAtIndexPath:你得到錯誤的對象,並將其發送到細節控制器。

- (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的代碼:

無論如何,你必須tableViews之間在列表視圖控制器得到正確的對象indexPath切換問題是我總是沒有得到錯誤的細節視圖......這是不一致的。所以我一次可能得到正確的細節頁面和第二次,完全不同。 – testndtv 2011-01-25 18:43:40