我有一個search bar
在tableview
。在搜索時,我會在搜索結果中顯示tableView
。現在我從tableView
中選擇一行並導航到detail view
,其中我將textField
顯示爲最近選擇的tableCell
的文本。我更新了文本框。並代表回到之前的tableViewController
。這裏我想更新過濾表格視圖中的單元格以及數據源中的主數據數組。如何在iOS中執行此操作。如何在搜索操作後更新過濾tableView中的tableViewCell數據?
回答
該方法將有助於在任何階段對錶格數據進行重新排序。
如果您使用的是UISearchViewController
,則需要訪問正確的表視圖以進行重新加載操作。一個可能的解決方案(如果你有一個屬性searchViewController
):
[self.searchViewController.searchResultsTableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation: UITableViewRowAnimationFade];
非常感謝。但如何跟蹤已過濾數組的原始數據數組?我需要在兩個陣列中更新它。如何映射兩個數組的索引路徑。這對我來說是真正的挑戰。 – Ganesh
試試這個,
在DetailViewController
像NSIndexPath *selectedIndexPath
.H添加@property
,
@property (nonatomic, strong) NSIndexPath *selectedIndexPath;
設置的selectedIndexPath
屬性DetailViewController
in didSelectRow
方法
在delegate
方法在tableViewController添加NSIndexPath
參數,如
- (void)didUpdatedText:(NSString *)updatedText atIndexPath:(NSIndexPath *)indexPath;
編輯:
- (void)didUpdatedText:(NSString *)updatedText atIndexPath:(NSIndexPath *)indexPath {
if (isSearching) {
NSString *updatingText = [self.filteredArray elementAtIndex:indexPath.row];
int elementIndex = [self.dataSourceArray indexOfElement:updatingText];
[self.dataSourceArray replaceObjectAtIndex:elementIndex withObject:updatedText];
[self.filteredArray replaceObjectAtIndex:indexPath.row withObject:updatedText];
} else {
[self.dataSourceArray replaceObjectAtIndex:indexPath.row withObject:updatedText];
}
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView endUpdates];
}
非常感謝。但如何跟蹤已過濾數組的原始數據數組?我需要在兩個陣列中更新它。如何映射兩個數組的索引路徑。這對我來說是真正的挑戰。 – Ganesh
由於您是從原始數據數組進行過濾,因此過濾數組中的元素具有相同的引用。因此,更新過濾數組中的元素依次更新原始數據數組中的元素(如前所述,兩者具有相同的參考)。但是在這裏元素本身發生了變化,所以嘗試了不同的方式。我更新了代碼。 – Akhilrajtr
- 1. iphone在搜索問題後更新tableview
- 2. 在tableview中過濾數據
- 3. 如何在操作過濾器後更新示波器模型?
- 4. 如何在AngularJS中的數據庫操作後更新列表
- 5. 如何在使用過濾器進行搜索後刷新數據網格
- 6. 如何操作jqGrid的搜索/過濾器?
- 7. 更新數據後顯示TableViewCell結果
- 8. 如何更新tableView中的數據?
- 9. 如何更改yajra數據表搜索過濾系統?
- 10. 的tableView reloadData過濾數據
- 11. selectBooleanCheckbox在過濾的數據表更新後未更新
- 12. 如何在搜索後重置操作欄搜索?
- 13. 如何在ListView中搜索後在ListView中過濾項目?
- 14. 如何測試在RSpec中具有過濾器的搜索控制器操作?
- 15. 如何在AngularJS中預過濾搜索
- 16. TableViewCell中的TableView
- 17. 如何在搜索記錄時更改TableViewCell中的圖像?
- 18. 過濾的搜索引擎數據
- 19. 在swift 3的tableview中更新tableviewcell中的特定行?
- 20. 如何過濾Firebase中的搜索iOS
- 21. 製作搜索過濾器
- 22. 在javascript中搜索/過濾
- 23. 更新數據表搜索
- 24. 如何在搜索模式下更改過濾信息的顏色(數據表)
- 25. 使用Python搜索/過濾/選擇/操作來自網站的數據
- 26. jqgrid在搜索操作後重新加載完整的數據網格
- 27. 在第一次搜索後過濾的搜索返回重複
- 28. 如何在某些數據更改後刷新TableView?
- 29. 如何從tableView中使用textfield搜索ipad中的數據
- 30. 搜索欄 - 在swift中過濾數值
豈不是一樣的非搜索結果即'[UITableView的reloadRowsAtIndexPaths: withRowAnimation:'',只需使用不同的索引路徑? – trojanfoe
感謝trojanfoe,這對我來說是真正的挑戰。如何跟蹤未搜索和搜索結果中的索引? – Ganesh