2012-03-01 2 views
2

동적으로 작성한 UIActionSheet가 있으며, 취소 단추를 포함하여 1에서 5까지의 단추가있을 수 있습니다. 취소 버튼을 사용할 수는 있지만 UIActionSheet에 2 개의 버튼 만 추가하면 단추 2와 4를 사용하여 수행 할 작업을 결정할 수 있습니다. 왜냐하면 일반적으로 나는 비슷한 것을 사용할 것입니다.동적으로 UIActionSheet 단추 및 동작을 변경하십시오.

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
      switch(buttonIndex) { 
       case 0: 
         // Do something here. 
         break; 
       case 1: 
         // Do something else here. 
         break; 
       case 2: 
         // Do something else again. 
         break; 
       case 3: 
         // Do something else here again. 
         break; 
       default: 
         break; 
      } 

그러나 나는 단지 단지의 경우 0, 1을 사용하려고하지만 두 개의 버튼 중 하나로 버튼 (4)을 추가하면 나는 아직도 사례 3.를 사용하려면 동적으로이 두 개의 버튼을 추가하면 것은이게 가능이나 그것을하는 또 다른 방법이 있습니까?

답변

6

buttonTitleAtIndex: 메서드를 사용하여 버튼 제목을 확인하십시오. 한 곳에서 버튼의 제목을 변경하면 코드가 손상되지 않도록주의해야합니다. 버튼을 만들 때이 버튼의 제목을 추가 변수에 저장하고이 변수를 사용하여 나중에 버튼 제목과 비교하는 것이 가장 좋습니다.

2

UIActionSheet를 만들 때 단추 인덱스를 수행하려는 실제 작업 (예 : 작업 열거 형)에 매핑하는 별도의 배열을 유지하십시오.

buttonIndex 대신 tasks[buttonIndex] 스위치를 켜십시오.

+0

예제 코드가 있습니까? – Popeye

관련 문제