我在我的主tableView中,有一些自定義單元格(基本上是帶有imageView的單元格)。重新加載searchResultsTableView
imageView僅當我的plist上的值爲false時才設置。然後,當它是真的,imageView是零。
基本上當用戶輸入detailView時,該值設置爲YES
,而cell.imageView
爲零。
而且它好,它的工作原理
我使用的是searchDisplayController
,當我搜索的東西,有一個cell.imageView,去到的DetailView然後回來的searchResultsTable
,電池仍具有的圖像,雖然它不應該,但主tableView有正確的單元格(所以,沒有圖像)。
我認爲這可能取決於searchResultsTableView,但我不確定。 我試過
[self.searchDisplayController.searchResultsTableView reloadData];
沒有效果。
我怎麼能重新加載searchResultsTableView,以便它顯示正確的單元格,那些與圖像和那些沒有圖像了?
任何幫助表示讚賞!
編輯
這是我cellForRowAtIndexPath
方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
NSArray *rows;
if (tableView == self.searchDisplayController.searchResultsTableView) {
rows = filteredList; //for search
} else {
NSDictionary *section = [localSortedTips objectAtIndex:indexPath.section];
rows = [section objectForKey:@"Rows"];
}
NSDictionary *item = [rows objectAtIndex:indexPath.row];
cell.textLabel.text = [item objectForKey:@"name"];
if ([[item valueForKey:@"isRead"] boolValue] == NO) {
cell.imageView.image = [UIImage imageNamed:@"unread.png"];
} else {
cell.imageView.image = nil;
}
cell.textLabel.font = [UIFont boldSystemFontOfSize:15.0];
cell.textLabel.adjustsFontSizeToFitWidth = YES;
return cell;
}
你是說你在進入詳細視圖之前某個特定的單元格會顯示一張照片,但在你回來之後不會顯示圖片嗎?它看起來像我正在緩存您的filteredResults值,並且如果您要更改幕後數據,我的猜測是過濾結果也不會被更新。 – 2012-07-08 03:27:59
基本上,當我回到視圖的圖像應該更新,但它只適用於刪除搜索詞,並再次搜索 – Phillip 2012-07-08 07:53:31
所以,正如我所說...它從代碼片段看起來像你緩存你的filteredResults。因爲它聽起來像是在改變幕後結果的內容,所以您需要再次執行搜索(如您所建議的那樣),或者當您在詳細視圖中更新某些內容時,您需要更新緩存的filteredResults以及其他結果。或者您需要更改filteredResults的內容,使其「項目不是您正在更改的內容的副本。 – 2012-07-08 17:27:31