2012-07-07 6 views
0

iOS 5.0 앱을 개발 중이며 취소 버튼을 클릭 할 때 "우아한"방법이 있는지 궁금합니다. 설명서에는 아무 것도 나타나지 않으므로 대답이 '아니오'라고 생각하고 있습니다.UIActionSheet에서 취소 버튼 클릭을 처리하는보다 우아한 방법이 있습니까?

기본적으로 저는 현재 2 개의 버튼과 취소 버튼이있는 UIActionSheet가 있습니다. 처음 두 버튼은이

-(void)actionSheet:(UIActionSheet *)actionsheet clickedButtonAtIndex:(NSInteger)buttonIndex 

처음 두 버튼은 같은 일부 변수에 의존 내가 가지고있는 코드를 기반으로 어떻게해야하지만, 클릭에 따라, 서로 다른 작업을 미리 형성 정확히 않습니다. 이러한 변수는 위의 메서드에서 switch 문 외부에서 인스턴스화 된 다음 사례 내부에서 처리됩니다. 취소 단추는 이러한 변수 중 하나 (분명히)에 의존하지 않으므로 모든 인스턴스화를 피하기 위해 취소 단추 인덱스를 테스트하는 if 문에서이 코드를 모두 래핑했습니다.

이상적이지 않습니다. 액션 시트에 새로운 버튼을 추가하면 if 문을 업데이트해야한다는 것을 기억해야합니다. 코드 자체는 일반적으로 지저분 해 보입니다. 처음 두 버튼의 클릭 로직을 처리하는 새로운 메소드를 작성할 수는 있지만 clickedButtonAtIndex 메소드가 호출되지 않도록 취소 버튼을 통해 ActionSheet를 단순히 해제하는 방법이 있다면 그렇게 멀리 가고 싶지 않았습니다.

그래서 제 질문입니다 : 호출되는 메서드없이 ActionSheet를 닫는 방법이 있습니까?

답변

0

글쎄, 당신이 언급 한 방법 당신이 할 수있는 일이 ... 가, 우선이 작업을 수행 :

if(buttonIndex == actionSheet.cancelButtonIndex) 
    return; 

를 지금까지 내가 당신이 할 수있는 최선의 것을 알고있다.

희망이 도움이됩니다.

감사합니다,

조지