所以,我有 2 个 View Controller :
- 一个表格 View Controller ,其中包含可以按下的俱乐部名称列表。它有一个名为 ClubsTableViewController 的自定义类。
- 一个 View Controller ,我将用它来显示按下的俱乐部的描述。我想重用这个 View Controller 来根据按下的球杆显示不同的信息。它有一个名为 ClubDetailViewController 的自定义类。
我在 TableView Controller 的每个 TableView 单元格和第二个 View Controller 之间创建了 segue,每个 segue 都有标识符“showClubDetails”。
我在 ClubsTableViewController.swift 文件中有以下方法:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showClubDetails" {
let detailsController = segue.destinationViewController as! ClubDetailViewController;
if let name = self.view.viewWithTag(1) as? UILabel {
detailsController.clubNameString = name.text!
detailsController.clubDescriptionString = clubDescriptions[name.text!]!
}
}
}
我使用此方法将从第一个 View Controller 按下的俱乐部名称传递到第二个 View Controller 。上面的代码适用于表格 View 的第一个单元格(上图中的“Amnesty International”),因为我已为其指定了标签 1。
但是,我想将按下的任何俱乐部的名称传递给第二个 View Controller ,但我不太确定如何执行此操作。 任何帮助,将不胜感激。 谢谢!
最佳答案
你的转场应该是这样的:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showClubDetails" {
let indexPath:NSIndexPath = tableView.indexPathForSelectedRow!
let detailsController = segue.destinationViewController as! ClubDetailViewController;
detailsController.clubNameString = names[indexPath.row]
detailsController.clubDescriptionString = clubDescriptions[indexPath.row]
}
}
编辑:
indexPath 获取俱乐部的索引,然后从数组中正确发送俱乐部名称。这意味着俱乐部名称必须位于数组中(与俱乐部描述相同)。
关于ios - 如何将信息从一个 View Controller 中的 TableView 单元格传递到另一个 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35434395/