2017-03-14 11 views
0

これは前の質問からの続きですが、私は非常にシンプルなものを見逃していると感じています。カスタムテーブルビューセル内のUISwitchにオブザーバを追加する

私はスイッチを含むカスタムテーブルビューのセルがあり、値が変更されるたびに関数をトリガする必要があります。私は.addTargetを使用しようとしましたが、関数をトリガーするようなことはないので、セレクタの構文が正しくない可能性があります。 私はこのようなテーブルビューのセル内にプログラム的にスイッチを作成します。

let thisSwitch: UISwitch = { 
    let thisSwitch = UISwitch() 
    thisSwitch.isOn = false 
    thisSwitch.translatesAutoresizingMaskIntoConstraints = false 
    thisSwitch.addTarget(self, action: Selector("switchTriggered:"), for: .valueChanged) 
    return thisSwitch 

}() 

を次に直接その下に私は私の機能を持っている:

func switchTriggered(sender: AnyObject) { 
    print("SWITCH TRIGGERED") 
    let sentSwitch = sender as! UISwitch 
    privateExercise.switchState = sentSwitch.isOn 

} 

はそれは方法はObjective-Cので宣言されていない」というエラーメッセージが表示さセレクタ 'switchTriggered:' "私はここで何が欠けていますか?どんな助けでも大歓迎です!

答えて

0

セレクタの構文は、関数にご返信用

func switchTriggered(sentSwitch: UISwitch) { 
    print("SWITCH TRIGGERED") 
    privateExercise.switchState = sentSwitch.isOn 
} 
+0

本当にありがとうございましたをキャスト避けるためにUISwitch型自体としてパラメータを保つ

thisSwitch.addTarget(self, action: #selector(switchTriggered), for: .valueChanged) 

でなければなりません。 私はちょうどこれを試みたが、エラーメッセージが消えても、それはまだ私の機能を引き起こすようではありません。 参考のため、私の運動変数にはswitchState変数があります。この変数はスイッチを追跡する必要があり、そのためアクションの必要性があります。 このメソッドを呼び出さない理由は何ですか? – EtherCode

+0

このスイッチボタンをどこかに追加していますか? 完全なcellForRowコードを投稿してください –

+0

まず、問題のコードを編集してください。第2に、UITwitchがUITableViewCellのビューに追加されている部分です。 configureCellWith関数本体がありません。 –

関連する問題