2011-12-21 6 views
42

UISwitchが状態を変更したときに何らかのアクションを実行したいので、これをオンまたはオフに設定します。これはどうすればいいですか?私はパラメータとして2つのオブジェクトを渡す必要があります。UISwitchが状態を変更したときにアクションを呼び出す方法は?

コードで作成されているため、xibを使用していません。

+1

func switchValueDidChange(sender:UISwitch!) { print(sender.isOn) } 

それとも、あなたが削除することができ、送信者を使用していない場合でもを/ 8521373/1072867) – akk

答えて

107
[yourSwitchObject addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged]; 

これはあなたのスイッチ状態が

- (void)setState:(id)sender 
{ 
    BOOL state = [sender isOn]; 
    NSString *rez = state == YES ? @"YES" : @"NO"; 
    NSLog(rez); 
} 
+3

どのようにデリゲートを設定しますか?私は 'delegate'プロパティや' - setDelegate'関数を見ません。 – Joeran

+1

デリゲートを設定する必要はありません、その独自の方法です;) –

1

を変更したときに明らかに我々はスウィフトと同じことを行うことができ、ここでのコードは(コンパイルとスウィフトの最新バージョンで働いていた以下のメソッドを呼び出します3.1

あなたのスイッチボタンにアクションを追加します。

mySwitch.addTarget(self, action: #selector(self.switchValueDidChange), for: .valueChanged) 

そして、このメソッドを実装:このリンク[UISwitchアクション](http://stackoverflow.com/aを参照してください

func switchValueDidChange() { 
    // do your stuff 
} 
関連する問題