/ / Augmentez un compteur dans le premier contrôleur d'interface en appuyant sur un bouton du deuxième contrôleur d'interface - swift, watchkit

Augmentez un compteur dans le premier contrôleur d'interface en appuyant sur un bouton du deuxième contrôleur d'interface - swift, watchkit

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

entrer la description de l'image ici

Réponses:

1 pour la réponse № 1

Le 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.