我试图写一个简单的点击器,但我有一些问题,在" StartViewController"我有func value()
它每秒添加1 +点击1 +最后一次保存值我shopViewController
我有shopViewController
我按下按钮它必须给+1(每次)单击,但如何从func value()
访问当前值?当我尝试获得当前值时,我得到零
func value() -> Float {
let endValue = appPerSec + valueToLoad + click
valueToSave = endValue
valueLable.text = "\(endValue)"
return valueToSave
}
// shopViewController
var StartView:StartViewController!
var currentValue:Float! = 0.0
@IBAction func testAdd(_ sender: Any) {
currentValue = StartView.value // here I get NIL
print(currentValue)
}
答案 0 :(得分:1)
我没有UnderStand你的问题,但我可以为我可以阅读的条款提供部分解决方案,或者请改进你的问题,以便我能够准确理解你在寻找什么。
同时我只是给出一些我认为你正在寻找的概念,如果没用,请在评分之前编辑你的问题没用:
制作一个可以使用的计时器
@IBOutlet weak var timeInTimer: UILabel!
var timer = Timer()
@IBAction func buttonPressed(_ sender: Any) //to stop the timer
{
timer.invalidate()
}
@IBAction func playButtonPressed(_ sender: Any) //to start the timer
{
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.processTimer), userInfo: nil, repeats: true)
}
将数据从一个视图传递到另一个视图:
let anyObjectName = storyboard?.instantiateViewController(withIdentifier: "IdentifierOfSecondViewController") as! IdentifierOfSecondViewController
anyObjectName.userName = userName //where username is a variable in second view
答案 1 :(得分:0)
您可以使用代理和协议。在您的shopView上方添加:
protocol ShopProtocol{
func updateCount();
}
在你的shopView中添加:
var delegateShop:ShopProtocol?
当您更改该变量时,请转到:
delegateShop.updateCount()
在主视图控制器中,当您呈现此shopViewController时(在呈现它之前),添加:
shopController.delegateShop = self
将ViewController定义更改为
class ...: UIViewController, ..., ShopProtocol{
当然,在该视图控制器中创建:
func updateCount(){
//do Stuff
}