LoginSignup
2
2

More than 5 years have passed since last update.

【Swift3】【WatchKit】WKInterfaceSwitchの状態を取得する

Posted at

WKIntarfaceSwichの状態を取得したい

初めてWatch対応アプリに挑戦中の私がいきなり壁にぶち当たったのでまとめ。

watchOSにて、ボタンを押下した時にSwitchのon / offを取得して
何やかんやしたかったのにできませんでした。

screenshot.png

↑これの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でゴリゴリするしかないのかなあ。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2