我想在第二个接口(interface) Controller 的 IBAction (Add1) 方法中增加第一个接口(interface) Controller 中的属性值
然后在第一个 View Controller 被激活时使用这个属性的值来更新标签
我能够增加值,但即使我按下后退按钮,该值也会增加。
我需要找到一个解决方案,以便当我在第二个界面 Controller 中按下 IBAction 时,我可以获得该结果并在第一个界面 Controller 中使用它并更新标签。
代码如下:
第一个接口(interface) Controller :
Blockquote
@IBOutlet weak var resultButtonLabel: WKInterfaceButton!
@IBAction func resultButton() {
pushControllerWithName("secondInterfaceController", context: self)
}
override func willActivate() {
super.willActivate()
resultButtonLabel.setTitle("\(counter++)")
}
Blockquote
第二个接口(interface) Controller :
Blockquote
var counter = 1
@IBAction func weScored() {
counter++
popController()
}
Blockquote
最佳答案
实现这个想法的简单方法是使用 NSUserDefaults
在您的 firstViewController 中,您可以通过这种方式从 NSUserDefaults
中读取值:
override func viewDidLoad() {
super.viewDidLoad()
let score = NSUserDefaults().integerForKey("Score")
resultButtonLabel.text = "\(score)"
}
在您的 SecondViewController 中,您可以通过以下方式使用 NSUserDefaults
增加此计数器:
import UIKit
class SecondViewController: UIViewController {
var counter = Int()
override func viewDidLoad() {
super.viewDidLoad()
counter = NSUserDefaults().integerForKey("Score")
}
@IBAction func weScored(sender: AnyObject) {
counter++
NSUserDefaults().setInteger(counter, forKey: "Score")
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("ViewController") as! UIViewController
self.presentViewController(vc, animated: true, completion: nil)
}
}
希望这会有所帮助。
关于swift - 通过按下第二个接口(interface) Controller 中的按钮来增加第一个接口(interface) Controller 中的计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30180896/