Je souhaite augmenter la valeur de la propriété dans le premier contrôleur d'interface de la méthode IBAction (Add1) du deuxième contrôleur d'interface
puis utilisez la valeur de cette propriété pour mettre à jour l'étiquette lorsque le premier contrôleur de vue est activé
J'ai pu augmenter la valeur, mais la valeur augmente même si j'appuie sur le bouton Précédent.
Je dois trouver une solution pour que, lorsque j'appuie sur IBAction dans le deuxième contrôleur d'interface, je puisse obtenir ce résultat, l'utiliser dans le premier contrôleur d'interface et mettre à jour l'étiquette.
voici le code:
Premier contrôleur d'interface:
Blockquote
@IBOutlet weak var resultButtonLabel: WKInterfaceButton!
@IBAction func resultButton() {
pushControllerWithName("secondInterfaceController", context: self)
}
override func willActivate() {
super.willActivate()
resultButtonLabel.setTitle("(counter++)")
}
Blockquote
Deuxième contrôleur d'interface:
Blockquote
var counter = 1
@IBAction func weScored() {
counter++
popController()
}
Blockquote
Réponses:
1 pour la réponse № 1Le moyen le plus simple de mettre en œuvre cette idée est d’utiliser NSUserDefaults
Dans votre firstViewController, vous pouvez lire le formulaire de valeurs NSUserDefaults
par ici:
override func viewDidLoad() {
super.viewDidLoad()
let score = NSUserDefaults().integerForKey("Score")
resultButtonLabel.text = "(score)"
}
et dans votre SecondViewController, vous pouvez augmenter ce compteur avec NSUserDefaults
par ici:
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)
}
}
J'espère que cela aidera.