目前,我正在开发我的第一个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)
}
}