如何在多个UITableViewCells中保存游戏的多个得分和数据?

时间:2019-05-21 11:48:04

标签: ios swift xcode uitableview

目前,我正在开发我的第一个iOS游戏。这是一个非常简单的游戏,包含3个ViewController(= VC)。在第一个VC中,名为“ Complete Test”的是游戏场景,用户必须按几个UIButton,最后在第二个VC中显示出100分的最终得分(称为“ FinalCompleteTest” ),并显示游戏的所有统计信息。

然后,在第二个VC中,用户应该可以选择通过按下UIButton“保存得分”来保存得分。此按钮将触发对嵌入了TableView的第三个VC“ ScoresCT”的选择。

我的最终目标是,当按下“保存分数”按钮时,“自定义”原型单元格(我创建的)被复制,并且所有要由用户保存的分数都显示在TableView中。 稍后,我还想找到一种方法,可以在玩游戏的分数旁边显示玩游戏的日期。

我的快速知识是有限的,但是我知道:

-如何将数据从一个VC传输到另一个VC -如何保存高分(但不幸的是,没有多个分数)

我很好地知道它如何工作,但我不知道从哪里开始。

我应该如何进行?预先感谢您的帮助!

文件FinalCompleteTest.swift的代码

import UIKit

class FinalCompleteTest: UIViewController {

    //Components of Visualization in VC
    @IBOutlet weak var FinalScore: UILabel!

    @IBOutlet weak var LeftPCT: UILabel!

    @IBOutlet weak var CenterPCT: UILabel!

    @IBOutlet weak var RightPCT: UILabel!

    @IBOutlet weak var BadContactPCT: UILabel!



    //Total Final Score --> transferred from VC: CompleteTest
    var score = String()

    //Components for Calculation of Percantages --> transferred from VC: CompleteTest
    var Leftpct = Int()
    var Rightpct = Int()
    var Centerpct = Int()
    var Totalpct = Int()
    var BadContactpct = Int()


    //Calculations for Percantages

    lazy var endLeftpct: Int = 100 * Leftpct / Totalpct
    lazy var endRightpct: Int = 100 * Rightpct / Totalpct
    lazy var endCenterpct: Int = 100 * Centerpct / Totalpct
    lazy var endBadContactpct: Int = 100 * BadContactpct / 30




    // Transferring data from VC: FinalCompleteTest to VC: ScoresCT
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let ScoresCT = segue.destination as? ScoresCT
        ScoresCT?.scoresaved = String(score)}


    override func viewDidLoad() {
        super.viewDidLoad()

        FinalScore.text = score
            LeftPCT.text = String(endLeftpct) + "%"
            RightPCT.text = String(endRightpct) + "%"
            CenterPCT.text = String(endCenterpct) + "%"
            BadContactPCT.text = String(endBadContactpct) + "%"

        }

文件ScoresCT.swift

的代码
import UIKit

class ScoresCT: UIViewController, UITableViewDelegate, UITableViewDataSource {

    var scoresaved = String()       // var transferred from VC: FinalCompleteTest


    let date = ["14.05.2019"]


    // TableView
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        return (date.count)}


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? ScoresCTcell
        cell?.scoreSaved.text = String(scoresaved)
        return (cell!)
    }




    override func viewDidLoad() {
        super.viewDidLoad()
        }
    }

文件ScoresCTcell.swift

的代码
import UIKit

class ScoresCTcell: UITableViewCell {


    //Components of Custom Prototype Cell
    @IBOutlet weak var datum: UILabel!


    @IBOutlet weak var scoreSaved: UILabel!


    override func awakeFromNib() {
        super.awakeFromNib()

    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

    }

}

0 个答案:

没有答案