Tableview将相同的数据传递给另一个Tableview

时间:2016-05-21 20:10:18

标签: swift uitableview segue

我有一个通过Tableview显示玩家的应用程序。用户可以添加"一个新玩家并输入他的名字,身高,体重,图片等......一旦保存,将被添加到Tableview中。他们还可以点击每个玩家,然后将它们带到玩家详细视图控制器,它会显示您输入的所有信息(姓名,身高,体重,投掷,击球,位置等等)。当用户点击播放器将其带到播放器详细信息页面时,这是当前代码:

var player2 = [Player]()

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "detail" {
        let playerDetailScreen = segue.destinationViewController as! PlayerDetailViewController

        if let selectedPlayerCell = sender as? PlayerListTableViewCell {
            let indexPath = tableView.indexPathForCell(selectedPlayerCell)!
            let selectedPlayer = player2[indexPath.row]

            playerDetailScreen.playereDetail = selectedPlayer
        }

    }
}

我正在尝试在视图控制器中实现一个tableview,用户在其中添加一个新播放器并输入信息。此表视图是用户可以添加团队或其他人玩过的年份(我使用表视图,因为条目数可能会有所不同)。我的问题是,最好的方法是什么?现在我有一个名为Teams.swift的第二个类用于这个特定的表视图,但这是最好的方法吗?我们的想法是在详细页面上的tableview中显示这些数据(同样,因为条目的数量会有所不同),那么如何将数据从一个tableview传递到另一个tableview?

我应该删除[Teams]类并将其放在[Player]类下吗?任何想法都将不胜感激!

1 个答案:

答案 0 :(得分:0)

首先,我建议使用:

process = CrawlerProcess({
    'FILES_STORE': 'C:\\Users\\User\\Downloads\\Scrapy',
    'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
    'ITEM_PIPELINES': {'scrapy.pipelines.files.FilesPipeline': 1},
})

process.crawl(MySpider)
process.start()  # the script will block here until the crawling is finished

下一步,在 prepareforsegue 方法内,执行此操作:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    // what happens when user selects a cell
let cell = self.tableView.cellForRowAtIndexPath.indexPath // This will give you cell that was selected
let selectedPlayer = cell.player  // This gives you the instance of the player (Benefit of using player class)
self.performSegueWithIdentifier("identifier", sender : selectedPlayer)

// ^ This will automatically call prepareforseque method.
}

}