2011-07-06 4 views
5

하나의보기에서 두 개의 작업 시트를 만들었습니다. 두 개의 버튼이 있으며, 각각 하나의 액션 시트가 시작됩니다.하나의보기에서 두 개의 작업 시트 만들기

문제 : 두 동작 시트에서 첫 번째 선택 항목을 누르면 동일한 동작이 실행됩니다.

-(IBAction) ChangeArrow:(id)sender{ 
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Change Arrow" 
                 delegate:self 
               cancelButtonTitle:@"cancel" 
              destructiveButtonTitle:@"Red" 
               otherButtonTitles:@"Blue",@"Black",nil]; 
[actionSheet showInView:self.view]; 
[actionSheet release];} 
- (void) actionSheet: (UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{ 
if (buttonIndex ==[actionSheet destructiveButtonIndex]) { 
    self.bar.image=[UIImage imageNamed:@"red"]; 

} 
else if(buttonIndex == 1){ 
    self.bar.image=[UIImage imageNamed:@"blue"]; 

} 
else if(buttonIndex == 2){ 
    self.bar.image=[UIImage imageNamed:@"dark"];} 
} 

// 두 번째 작업 시트 : 다른 값으로 각 actionsheet에 태그의 속성을 설정

-(IBAction) Background:(id)sender{ 
UIActionSheet *actionSheet2 = [[UIActionSheet alloc] initWithTitle:@"Change Background" 
                 delegate:self 
               cancelButtonTitle:@"cancel" 
              destructiveButtonTitle:@"Sky" 
               otherButtonTitles:@"Thumbs",@"Smiley",nil]; 
[actionSheet2 showInView:self.view]; 
[actionSheet2 release]; 
} 
- (void) actionSheet2: (UIActionSheet *)actionSheet2 didDismissWithButtonIndex:(NSInteger)buttonIndex { 
if (buttonIndex ==[actionSheet2 destructiveButtonIndex]) { 
    self.background.image=[UIImage imageNamed:@"sky"]; 

} 
else if(buttonIndex == 1){ 
    self.background.image=[UIImage imageNamed:@"thumbs"]; 

} 
else if(buttonIndex == 2){ 
    self.background.image=[UIImage imageNamed:@"smiley"];} 
} 
+0

코드를 작성할 때 thnx, 난 여전히 몇 가지 문제가 발생 dickison 다니엘 : P –

답변

25

여기 내 코드입니다. 그런 다음 sender.tag를 검사하여 메서드라고하는 작업 시트를 확인할 수 있습니다.

Ex.

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Change Arrow" 
                delegate:self 
              cancelButtonTitle:@"cancel" 
             destructiveButtonTitle:@"Red" 
              otherButtonTitles:@"Blue",@"Black",nil]; 
actionSheet.tag = 1; 
UIActionSheet *actionSheet2 = [[UIActionSheet alloc] initWithTitle:@"Change Arrow" 
                 delegate:self 
               cancelButtonTitle:@"cancel" 
              destructiveButtonTitle:@"Red" 
               otherButtonTitles:@"Blue",@"Black",nil]; 
actionSheet2.tag = 2; 

그런

- (void) actionSheet: (UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{ 
if(actionSheet.tag == 1) { 
    //do something 
} else if(actionSheet.tag == 2) { 
    //do something else 
} 
} 
+0

을 다윗의 정답에 추가, 당신은 대리인에 있던 발신자 확인 방법. –

+0

어떻게 할 수 있습니까? –

+0

+1 to David : 최고의/가장 쉬운 방법은 Davids 응답의 편집 된 예제를 참조하십시오. –

관련 문제