2014-03-13 4 views
1

내 제목은 clickedButtonAtIndex 위임 방법은 심지어 UIActionSheet의 밖에서 탭을 호출했다.
UIButton을 누르면 내 actionSheet가 표시됩니다. 코드 : UIActionSheet 선언. clickedButtonAtIndex 메쏘드가 왜 UIActionSheet의 외측을 두드리는 호출입니까?

-(void)btnComplexityTapped:(UIButton *) sender 
{ 
    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Select your complexity" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Easy", @"Medium", @"High", nil]; 
    [actionSheet showFromRect:sender.frame inView:self.view animated:YES]; 
    [actionSheet release]; 
} 

위임 방법에

- (void)actionSheet:(UIActionSheet *)myActionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if(buttonIndex == 0) 
    { 
     [self.btnComplexity setTitle:@"Easy" forState:UIControlStateNormal]; 
    } 
    else if(buttonIndex == 1) 
    { 
     [self.btnComplexity setTitle:@"Medium" forState:UIControlStateNormal]; 
    } 
    else 
    { 
     [self.btnComplexity setTitle:@"High" forState:UIControlStateNormal]; 
    } 
} 

나는이 문제는 else 대신 else if(buttonIndex == 1)을 설정하는 대리자 메서드에서 설정 한 마지막 조건에 의해 수정되는 것을 알고있다. 그러나 나는 어떤 고정을 적용하지 않고 위임 방법도 좀 더 명확한 그림이 비디오를 참조하십시오 UIActionSheet

의 버튼을 눌러 있지 않다라고 왜 을 알고 싶어요. 버튼의 비디오 기본 제목 이상으로

enter image description here

는 방법 clickedButtonAtIndex을 위임 (예 : self.view 같은) 내가 버튼을 클릭 한 후 actionSheet이 열려 나는 actionSheet 중 쪽을 클릭 할 때 "중간"그래서 마지막이라고 else 조건이 사실이되고 내 단추의 제목이 "높음"으로 변경됩니다.

왜 어떤 상황이 발생했는지 알 수 있습니까?

답변

4

iPad 액션 시트는 팝 오버에서 제공됩니다. 팝업 취소는 터치 취소와 동일하므로 취소 버튼이 없습니다. 따라서 대리인은 취소 버튼을 터치 한 것처럼 메시지를받습니다.

1

는 그것은 당신이 ActionSheet에서 탭 경우 Cancel가 트리거 ActionSheet.Its에 취소 버튼이없는 POPOVER (아이 패드)에 제시되어 있기 때문에.

관련 문제