我有一个通过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]类下吗?任何想法都将不胜感激!
答案 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.
}
}