Я использовал Singleton в IOS с успехом раньше, но тот же подход не работает для меня в watchkit ... любая идея, почему мой второй контроллер интерфейса отображает 0 (инициализированное значение) вместо чисел, введенных в первый контроллер интерфейса?Использование Singleton для передачи данных в Watchkit
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()
}