2011-12-21 2 views
42

UISwitch가 상태를 변경할 때 일부 동작을 수행하려고하므로 설정 또는 해제됩니다. 어떻게해야합니까? 두 개의 객체를 매개 변수로 전달해야합니다.UISwitch가 상태를 변경하면 작업을 호출하는 방법?

코드로 생성되었으므로 xib를 사용하지 않습니다. 스위치 상태는 분명히 우리가 스위프트와 같은 작업을 수행 할 수 있습니다

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

이 링크 [UISwitch 액션] (http://stackoverflow.com/a를 참조하십시오/8521373/1072867) – akk

답변

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

이 여기에 코드 (컴파일은, 아래의 메소드를 호출하고 스위프트의 최신 버전 일 스위치 버튼에 3.1)

추가 조치 :

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

그리고이 방법을 구현 :

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

아니면 발신자를 사용하지 않는 경우에도 당신은 제거 할 수 있습니다 :

func switchValueDidChange() { 
    // do your stuff 
} 
+3

어떻게 위임자를 설정 하시겠습니까? 나는'delegate' 속성이나'- setDelegate' 함수를 보지 못했습니다. – Joeran

+1

위임자를 설정할 필요가 없습니다. 그 자체 방법입니다.) –

1

가 변경 될 때

관련 문제