2012-03-21 1 views
2

현재 두 개의 버튼이있는 UIActionsheet을 구현 중입니다. 내가 손에 봉착 문제에 대한 지금UIActionsheet가 가장 최근에 눌려진 버튼을 인식하게하는 방법은 무엇입니까?

-(void)foo{ 

    UIActionSheet *mySheet = [[UIActionSheet alloc] initWithBlabla:blabla]; 

    [mySheet showFromTabBar:myTabBar]; 

    [mySheet release]; 


{ 


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


    if(buttonIndex == x){ 

     [[NSUserDefaults standardUserDefaults] setValue:foo forKey:bar]; 

    { 
    else{ 
     // bla 
    { 



} 

:

버튼의 각

[NSUserDefaults standardUserDefaults]

에 내가 기압이 구현을 다른 값을 저장합니다.

나는 가장 최근에 클릭하여 어떤 식 으로든 표시하는 버튼을 인식 할 수있는 액션 시트를 정말 좋아할 것입니다.

예를 들어 작업 시트가 처음 표시 될 때 두 버튼은 기본적으로 회색이며 한 버튼이 눌려지고 작업 시트가 사라집니다.

두 번째로 작업 표시가 나타나면 처음으로 표시됩니다. 그리고 가장 최근에 눌려진 버튼에 관한 사용자 의견을 제공하는 작업 표와 같았습니다. (다른 착색이나 뭐든지).

작업 표 내에서 생성 된 버튼에 액세스 할 수 있으면 문제가 없을 것입니다. 의사 코드에서

내가 아마 내가 actionsheet 키 foo에 대한 userdefaults가 무엇인지 인식하고 UIActionSheet 내에서 버튼을 조정하고 싶습니다

UIActionSheet *myActionSheet = [[UIActionSheet] alloc] initwithBlabla:blabla]; 

if([[userDefaults objectForKey:@"foo"]isEqualToString:@"bar"]) 
{ 
    [myActionSheet setHighLighted:otherButton2]; 
} 

다음과 같이 솔루션의 종류를 원하는 것입니다.

이러한 일을 구현하는 방법에 대한 도움말 및/또는 조언을 주시면 감사하겠습니다.

답변

1

UIActionSheet에는 3 개의 다른 버튼 표시 스타일이 있습니다. 파괴적인 동작 (파괴적인 동작), 취소 버튼 (하단의 버튼이며 보통 버튼보다 약간 어두운) 및 소위 " 다른 버튼 "은 회색입니다.

해킹이없는 해법을 찾으려면 if-condition을 만들고 매번 조금씩 다르게 액션 시트를 인스턴스화하여 필요한 세 가지 색상을 사용할 수 있습니다.

해커 해커 솔루션에 관심이 있고 더 많은 색상을 원하는 경우 작업 시트의 모든 하위보기를 반복하여 스타일을 직접 수정하는 것이 좋습니다. 그러나 경고 : 공개 API가없는 내부 구성 요소가 변경되지 않는다는 보장이 없으므로 (현재 대부분의 경우 공용 API가없는 이유 때문에) iOS의 향후 릴리스에서는 해당 솔루션이 작동하지 않을 수 있습니다.

+0

해키 해킹 솔루션에 전혀 신경 쓰지 않아서 생성 된 코드가 매우 좋지 않더라도 해킹 해지가없는 해결책이 있습니다. – doge

+0

맙소사, 가지고있어! – doge

+0

왜 나빠 보이니? 그것은 내가 기대했던 것보다 많이 더 많은 코드가되었다 – moritz