如何在我的 segue 准备功能中访问 TableView 索引路径?
Posted
技术标签:
【中文标题】如何在我的 segue 准备功能中访问 TableView 索引路径?【英文标题】:How can I access UITableView's index path in my segue prepare function? 【发布时间】:2020-04-15 22:02:40 【问题描述】:我正在尝试从准备函数中的 tableView 函数访问 stringSchoolID 变量。它是一个动态变量,随着单击 TableView 中的不同行项而变化。数组由 Firebase 填充,因此我删除了这部分代码 - 您可以假设它们已填充,因为我已经对此进行了测试。
作为一种解决方案,我尝试在函数之外声明变量,但这不起作用,目标 segue 只收到一个空字符串(因为它已被声明)。感谢所有帮助!
class SearchViewController: UIViewController
@IBOutlet weak var tableViewSearch: UITableView!
struct School
let schoolID: String
let schoolName: String
let schoolTown: String
let schoolCountry: String
var schoolArray: [School] = []
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view.
extension SearchViewController: UITableViewDataSource, UITableViewDelegate
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
performSegue(withIdentifier: "SearchSelectionSegue", sender: self)
var stringSchoolID: String = self.schoolArray[indexPath.row].schoolID
print(stringSchoolID)
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
let searchSelectionSegue = segue.destination as! SchoolProfileViewController
searchSelectionSegue.stringSegue =
【问题讨论】:
【参考方案1】:您可以执行以下操作:
let stringSchoolID = self.schoolArray[indexPath.row].schoolID
performSegue(withIdentifier: "SearchSelectionSegue", sender: stringSchoolID)
在:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
let searchSelectionSegue = segue.destination as! SchoolProfileViewController
searchSelectionSegue.stringSegue = sender as? String
【讨论】:
【参考方案2】:您可以使用tableView.indexPathForSelectedRow?.row
来获取所选单元格的索引。
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
let searchSelectionSegue = segue.destination as! SchoolProfileViewController
guard let index: Int = tableView.indexPathForSelectedRow?.row else return
searchSelectionSegue.stringSegue = schoolArray[index].schoolID
【讨论】:
以上是关于如何在我的 segue 准备功能中访问 TableView 索引路径?的主要内容,如果未能解决你的问题,请参考以下文章
如何在准备中的 switch 语句中使用可选绑定(segue :)
准备 Segue 到 UITabBarController 选项卡
如何访问存储在我的 UICollectionViewController 中的集合视图单元格中的变量