Ios 如何从tableview单元格中分离并将不同的数据从每个单元格传递到下一个tableview?
我试图通过创建一个类来表示每个列表项,来练习使用模型制作列表应用程序。我有一个Category类,它包含三个属性——两个字符串和一个字符串数组。下面是课堂:Ios 如何从tableview单元格中分离并将不同的数据从每个单元格传递到下一个tableview?,ios,swift,uitableview,segue,Ios,Swift,Uitableview,Segue,我试图通过创建一个类来表示每个列表项,来练习使用模型制作列表应用程序。我有一个Category类,它包含三个属性——两个字符串和一个字符串数组。下面是课堂: class Category { var name: String var emoji: String var topics: [String] // (the getCategories method listed below goes here) // init(name: String, emoji:
class Category {
var name: String
var emoji: String
var topics: [String]
// (the getCategories method listed below goes here) //
init(name: String, emoji: String, topics: [String]) {
self.name = name
self.emoji = emoji
self.topics = topics
}
在我的Category类中,我有一个方法将值分配给类别,这样我就可以将它们排除在视图控制器之外。该方法如下所示:
class func getCategories() -> [Category]
{
let categories =
[Category(name:"cat", emoji:"In your cell for row at indexPath:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.tag = indexPath.row
return cell
}
class func getCategories()->[Category]
{
设类别=
[类别(名称:“猫”,表情符号:在您的单元格中的行中:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "fromCategorySegue") {
if let cell = sender as? UITableViewCell {
let row = cell.tag
// pass data to segue.destination
}
}
}
在准备赛格的过程中:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
self.indexForCatergoryToShow = indexPath.row
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if (segue.identifier == "fromCategorySegue")
{
let vc = segue.destinationViewController as! TopicsTableViewController
vc.categories = categories[indexForCatergoryToShow]
}
}
因此,您可以知道选择的单元格。如果不查看完整视图控制器,则很难回答此问题。从查看您发布的代码来看,所选单元格与prepare for segue方法之间似乎没有关系。例如,您是否实际使用了在didSelectCell方法中创建的变量看起来你没有。在准备赛格的时候,你只是一遍又一遍地展示同样的东西,所以老实说,结果很明显
您需要存储所选单元格的索引。然后使用该索引显示数组中的相应数据。类似于下面的操作可能会起作用。需要在类级别创建名为IndexForcategoryToShow的变量
可能重复我在CategoryTableViewController顶部为indexForCategoryToShow创建了一个变量,尝试了这一点-我尝试将其声明为->indexForCategoryToShow:Int=0,indexForCategoryToShow=0,indexForCategoryToShow=Int…。这些方法都不起作用,我要么在初始化时出错,要么在展开时崩溃ping-an可选,结果为零。我应该注意,我通过从CategoriseTableViewController上的单元格拖动到TopicsTableViewController中的单元格,完成了与故事板的连接。。。