gpt4 book ai didi

swift - UISearchController : how to get selected table row index in ios8 (Swift)

转载 作者:可可西里 更新时间:2023-11-01 01:39:22 25 4
gpt4 key购买 nike

我知道 searchDisplayController 在 ios8 中已被弃用,我在使用 UISearchController 查找筛选结果中的选定行时遇到问题

我有以下场景:

     var myObject = PFObject(className:"XX")
if segue.identifier == "XXXSegue" {
if let destination = segue.destinationViewController as? XXXTableViewController {
if (self.resultSearchController.active) {

if let row = self.searchDisplayController?.searchResultsTableView.indexPathForSelectedRow()?.row {
myObject = self.searchResults[row]
}
}
else {
if let row = tableView.indexPathForSelectedRow()?.row {
myObject = self.objects![row] as! PFObject
}
}
// I will be using myObject for other stuff here
}
}

我如何从 UISearchController 中找到选定的行索引,即等同于:

self.searchDisplayController?.searchResultsTableView.indexPathForSelectedRow()?.row

使用 UISearchController ?

最佳答案

一种解决方案是将 segue 连接到 Story Board 中的目标 View Controller ,作为来自 TableViewController 的手动“推送”segue,而不是作为来自 TableView 原型(prototype)的选择“推送”segue单元格。

然后,在 tableView:didSelectRowAtIndexPath 函数中,手动执行 segue:

self.performSegueWithIdentifier("XXXSegue", sender: tableView)

这将作为参数传递完整的、未过滤的 TableView 或简化的、过滤的 TableView ,具体取决于你的 UISearchController 是否处于事件状态。

最后,在prepareForSegue函数中:

if segue.identifier == "XXXSegue" {
let sender = sender as! UITableView
let destController = segue.destinationViewController as! XXXTableViewController
let indexPath = sender.indexPathForSelectedRow()!

if self.resultSearchController.active {
destController.objects = self.searchResults[indexPath.row] //filtered array
} else {
destController.objects = self.objects[indexPath.row] //full array
}
}

**编辑:但是,要更直接地回答你的问题,你可以试试这个:

if self.resultSearchController.active {
let updater = self.resultSearchController.searchResultsUpdater as! UITableViewController
let indexPath = updater.tableView.indexPathForSelectedRow()!
...
}

如果您在初始化 UISearchController 时设置了 resultSearchController.searchResultsUpdater = self,这将起作用。

关于swift - UISearchController : how to get selected table row index in ios8 (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31802408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com