我之前在IOS中使用了Singleton,但同样的方法在watchkit中对我不起作用...任何想法为什么我的第二个接口控制器显示0(初始化值)而不是输入的数字第一接口控制器?
class Singleton {
static let instance = Singleton()
var salesPriceAsInt: Int = 0
}
import WatchKit
import Foundation
class InterfaceController: WKInterfaceController {
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
// Configure interface objects here.
}
var salesPrice = ""
@IBOutlet weak var salesPriceLabel: WKInterfaceLabel!
func addCharacter(char: String) {
salesPrice += char
}
@IBAction func zeroButton() {
addCharacter("0")
salesPriceLabel.setText(salesPrice)
}
@IBAction func oneButton() {
addCharacter("1")
salesPriceLabel.setText(salesPrice)
}
@IBAction func twoButton() {
addCharacter("2")
salesPriceLabel.setText(salesPrice)
}
@IBAction func threeButton() {
addCharacter("3")
salesPriceLabel.setText(salesPrice)
}
@IBAction func fourButton() {
addCharacter("4")
salesPriceLabel.setText(salesPrice)
}
@IBAction func fiveButton() {
addCharacter("5")
salesPriceLabel.setText(salesPrice)
}
@IBAction func sixButton() {
addCharacter("6")
salesPriceLabel.setText(salesPrice)
}
@IBAction func sevenButton() {
addCharacter("7")
salesPriceLabel.setText(salesPrice)
}
@IBAction func eightButton() {
addCharacter("8")
salesPriceLabel.setText(salesPrice)
}
@IBAction func nineButton() {
addCharacter("9")
salesPriceLabel.setText(salesPrice)
}
@IBAction func segueButton() {
Singleton.instance.salesPriceAsInt = salesPrice.toInt()!
salesPriceLabel.setText("\(Singleton.instance.salesPriceAsInt)")
}
import WatchKit
import Foundation
class SecondPageInterfaceController: WKInterfaceController {
@IBOutlet weak var totalSaleCommissionLabel: WKInterfaceLabel!
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
}
@IBAction func secondPageButton() {
totalSaleCommissionLabel.setText("\(Singleton.instance.salesPriceAsInt)")
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
答案 0 :(得分:1)
结果显示Singleton的工作原理,没有启用按钮同时(1)存储到Singleton和(2)segue到我的第二个接口控制器。为了解决这个问题,我搬了
Singleton.instance.salesPriceAsInt = salesPrice.toInt()!
到didActivate方法