2014-12-02 1 views
0

단추가 선택되어 있고 선택되지 않은 상태입니다. 버튼이 눌려지면UIButton UIControl 대상 동작 단일 단추에 대한 두 동작

NSArray *targets = [myButton actionsForTarget:self forControlEvent:UIControlEventTouchUpInside]; 

    if ([targets count] == 0) { 
     [myButton addTarget:self action:@selector(save:) forControlEvents:UIControlEventTouchUpInside]; 

,이 방법에있어서 선택 상태로 진행 ​​:

버튼의 내 목표 동작 코드는이된다.

버튼을 선택한 경우 다른 작업을 호출해야합니다. 이런 식으로 의도하지 않은 결과가 있습니까? 아니면 대신 UIControlState를 사용하여 작업을 추가하는 방법이 있습니까?

if (myButton.selected == NO){ 
[myButton addTarget:self action:@selector(save:) forControlEvents:UIControlEventTouchUpInside]; 
} 
else{ 
[myButton addTarget:self action:@selector(delete:) forControlEvent:UIControlEventTouchUpInside]; 
} 
+0

그것은 확인을 보인다는이 btn.selected 무엇을 구현 –

답변

0
-(IBAction)myButton:(id)sender 
{ 
UIButton *btn = (UIButton*)sender; 
btn.selected = !btn.selected; 
if(btn.selected) 
{ 
    //Do whatever you want when button is selected 
    [self delete]; 
} 
else 
{ 
    //Do whatever you want when button isDeselected 
    [self save]; 
} 
} 
+0

에 대한 나쁜 아무것도해야 =! 할 btn.selected? – noobsmcgoobs

+0

btn.selected =! btn.selected 선택된 버튼의 상태를 토글하고 선택 해제했습니다! –

0

귀하의 접근 방식은 혼동을 줄 수 있습니다. 이런 식으로 사용할 수 있습니다.

[myButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; 

    - (void)buttonPressed:(UIButton *)sender 
    { 
     if(sender.selected) 
     [self save]; 
     else 
     [self delete]; 
    } 
    -(void)save 
    { 
    // your code 
    } 
    -(void)delete 
    { 
    // your code 
    } 
0

나는 토글 버튼과 같은 것을 원한다고 생각합니다. 내가 맞다면 기능을 따라 yourbutton.currentTitle을 사용하십시오. 즉 [youtbutton.currentTitle isEqualToString: @"save]" 경우 다음 저장을 수행하고 삭제 설정하고 그 구절

관련 문제