Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从tableview单元格中分离并将不同的数据从每个单元格传递到下一个tableview?_Ios_Swift_Uitableview_Segue - Fatal编程技术网

Ios 如何从tableview单元格中分离并将不同的数据从每个单元格传递到下一个tableview?

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:

我试图通过创建一个类来表示每个列表项,来练习使用模型制作列表应用程序。我有一个Category类,它包含三个属性——两个字符串和一个字符串数组。下面是课堂:

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中的单元格,完成了与故事板的连接。。。