WKIntarfaceSwichの状態を取得したい
初めてWatch対応アプリに挑戦中の私がいきなり壁にぶち当たったのでまとめ。
watchOSにて、ボタンを押下した時にSwitchのon / offを取得して
何やかんやしたかったのにできませんでした。
↑これのtapを押したらswitchがonなのかoffなのか取得したかった。
やったこと
InterfaceController.swift
@IBOutlet var testSwitch: WKInterfaceSwitch!
@IBAction func tapped() {
print(testPicker.isOn) // エラー
}
UISwitchではisOnでSwitchの状態を取得できましたが、
WKInterfaceSwitchではダメっぽい。
そもそもSwitchの状態を取得するプロパティはないっぽい。
参考:check if switch is on boolean watchkit(stackOverflowに飛びます)
Actionで取得はできるみたいなので、こうするしか今の私には無理でした。
InterfaceController.swift
//@IBOutlet var testSwitch: WKInterfaceSwitch!
var state = true
@IBAction func switchChanged(_ value: Bool) {
if value {
state = true
}else {
state = false
}
}
@IBAction func tapped() {
print(state)
}
WKInterfacePickerでも同様っぽい
Switchと同じく、PickerもselectedRow()がダメでした。
こちらも取得するプロパティがないっぽい。
Actionでゴリゴリするしかないのかなあ。