Swift 通过按下第二接口控制器中的按钮来增加第一接口控制器中的计数器

Swift 通过按下第二接口控制器中的按钮来增加第一接口控制器中的计数器,swift,watchkit,Swift,Watchkit,我想在第二个接口控制器的iAction(Add1)方法中增加第一个接口控制器中属性的值 然后在激活第一个视图控制器时使用此属性的值更新标签 我可以增加值,但即使按下后退按钮,值也会增加 我需要找到一个解决方案,这样当我在第二个接口控制器中按下iAction时,我就可以得到这个结果并在第一个接口控制器中使用它并更新标签 代码如下: 第一接口控制器: 大宗报价 大宗报价 第二接口控制器: 大宗报价 大宗报价 实现此想法的简单方法是使用NSUserDefaults 在firstViewContro

我想在第二个接口控制器的iAction(Add1)方法中增加第一个接口控制器中属性的值

然后在激活第一个视图控制器时使用此属性的值更新标签

  • 我可以增加值,但即使按下后退按钮,值也会增加

  • 我需要找到一个解决方案,这样当我在第二个接口控制器中按下iAction时,我就可以得到这个结果并在第一个接口控制器中使用它并更新标签

代码如下:

第一接口控制器:

大宗报价

大宗报价

第二接口控制器:

大宗报价

大宗报价


实现此想法的简单方法是使用
NSUserDefaults

在firstViewController中,您可以通过以下方式从NSUserDefaults中读取值:

override func viewDidLoad() {
    super.viewDidLoad()
    let score = NSUserDefaults().integerForKey("Score")
    resultButtonLabel.text = "\(score)"
}
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)
    }
}
在SecondViewController中,您可以使用
NSUserDefaults
增加此计数器,方法如下:

override func viewDidLoad() {
    super.viewDidLoad()
    let score = NSUserDefaults().integerForKey("Score")
    resultButtonLabel.text = "\(score)"
}
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)
    }
}

希望这会有所帮助。

您认为我可以使用Watchkit执行相同的步骤吗,因为我的应用程序在Apple Watch上,所以我将无法使用(UIStoryboard,以及通常的presentViewController和UIKit)您可以根据需要修改代码。但我认为逻辑是相同的。例如,我在Watchkit中没有找到与UIStoryboard等效的。您是否尝试使用pushControllerWithName?阅读有关NSUserDefaults的文档,您将找到解决方案:)