swift - 通过按下第二个接口(interface) Controller 中的按钮来增加第一个接口(interface) Controller 中的计数器

标签 swift watchkit

我想在第二个接口(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

enter image description here

最佳答案

实现这个想法的简单方法是使用 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/

相关文章:

json - 从 GoogleApiBooks 解析 JSON

自定义工具栏中按钮的快速定位(谷歌设计 Material )

arrays - 非嵌套数组Swift的嵌套数组和ices

ios - WKWatchConnectivityRefreshBackgroundTask 与 WCSessionDelegate 竞争

ios - "This app requires iOS 11.3"我正在使用 11.3.3

iOS 更改呈现 View Controller 上的按钮文本

watchkit - animateWithDuration 缺少完成 block ,WatchOS 2

xcode - 检测蓝牙耳机是否连接到 Apple Watch

ios - 是否可以专门向Apple Watch发送本地通知?

swift - 观看操作系统 : Microphone & Audio Processing