search后访问索引path行

我用数据填充表格,并按照预期工作 – 包括将每行的细节延续到另一个场景。 我在那里抛出一个search栏(以编程方式 – 使用新的searchController),它成功地重新加载了原来的表与任何发现的结果。

但是,在search之后触摸选定的行时,传递的是与原来的表格行相同的原始表格行,它现在与现在触摸的表格的位置相同! (即如果我selectsearch的当前第二行,则下一个场景会延续原始表的第二行的细节!)

那么如何在search后提供prepareForSegue函数我的正确的行?

这是细胞的创造:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = self.tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell if (self.resultSearchController.active) { cell.textLabel?.text = filteredTableData[indexPath.row] return cell } else { cell.textLabel?.text = TableTitle[indexPath.row] return cell } } 

这是searchfunction:

 func updateSearchResultsForSearchController(searchController: UISearchController) { filteredTableData.removeAll(keepCapacity: false) let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text) let array = (the_tableData as NSArray).filteredArrayUsingPredicate(searchPredicate) filteredTableData = array as! [String] self.tableView.reloadData() } 

这是继续:

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { // Get the new view controller using [segue destinationViewController]. var thirdScene = segue.destinationViewController as! customer_details_View_Controller if let indexPath = self.tableView.indexPathForSelectedRow() { thirdScene.basics = the_basics[indexPath.row] thirdScene.p_method = the_p_method[indexPath.row] thirdScene.notes = the_notes[indexPath.row] } // Pass the selected object to the new view controller. } 

您必须检查prepareFOrSegueDidSelectRowAtIndexPathsearch结果。

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { // Get the new view controller using [segue destinationViewController]. var thirdScene = segue.destinationViewController as! customer_details_View_Controller if self.resultSearchController.active && searchController.searchBar.text != "" { // Select data from Filtered Array } else { // Select data from regular array } } 

Rey Wenderlich有一个很好的教程:

https://www.raywenderlich.com/113772/uisearchcontroller-tutorial