2011-03-18 4 views
1

맨 아래에 툴바가있는 UItableView가 있습니다. 도구 모음에는 'fruits', 'vegetables'라는 두 개의 버튼이 있습니다. 해당 항목을 클릭하면 해당 범주 만 표시됩니다.UIToolBar가 선택된 버튼 상태

표시 기능을 사용할 수있게되었지만 선택한 상태에서 selectedState에 단추를 설정하는 방법을 모르겠습니다. 내가 이전 버튼을 해제하기 때문에

-(void)fruitsClicked:(id)sender{ 
    //code here 
} 

처럼

UIBarButtonItem *fruits = [[UIBarButtonItem alloc] initWithTitle:@"Fruits" style:UIBarButtonItemStyleBordered target:self action:@selector(fruitsClicked:)]; 
UIBarButtonItem *vegetables = [[UIBarButtonItem alloc] initWithTitle:@"Vegetables" style:UIBarButtonItemStyleBordered target:self action:@selector(vegetablesClicked:)]; 
NSArray *items = [NSArray arrayWithObjects: fruits,vegetables,nil]; 
[fruits release]; 
[vegetables release]; 
[self setToolBarItems:items]; 

및 선택기 아래와 같이

내가 툴바를 생성, 내가

fruits.enabled=NO; 

에게 어떤 도움을 설정할 수 없습니다입니다 감사하겠습니다.

당신이 사용할 수있는 하나 개의 세그먼트는 X. 중에서 선택 :

답변

2

내가 그 좋은 디자인과 전략 아닙니다 할 별도의 버튼을 추가하는 생각, 당신은 당신이 원하는 무엇을위한 구성 요소 디자인 인 UISegmentad 컨트롤을 사용한다

UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:array]; 
[segment setSelectedSegmentIndex:0]; 

그리고 선택한 항목을 얻을 :

segment.selectedSegmentIndex 
+0

UISegementedControl을 툴바에 어떻게 추가합니까? – Neelesh

+1

[toolBar setItems : [NSArray arrayWithObjects : segment, nil]]; –

+0

미안. 나는 너를 어딘가에서 잃어 버렸어. 배열을 어떻게 만드나요? NSArray * items = [NSArray arrayWithObjects : @ "fruits", @ "vegetables"]; ' 그렇다면 선택기 메서드는 어떻게 설정합니까? – Neelesh

-1

내가 UIToolBars 어떤 경험을 필요는 없습니다 이런 식으로는 (예를 들어 첫 번째 항목을 선택합니다) ,하지만 내가 본 것에서 선택자는 발신자의 ID를 얻습니다. 그렇죠? 이를 사용하여 클릭 한 버튼에 액세스 한 다음 선택한 버튼을 설정할 수 있습니다.

+0

UIBarButtonItem에서 표준 UIButton에 액세스 할 수있는 방법이 없으므로이를 선택하는 방법도 없습니다. – hop

0

fruitClicked 처리기에 전달 된 sender 인수는 UIBarButtonItem에 대한 포인터가됩니다.

[((UIBarButtonItem*)sender) setEnabled:NO]; 

그러나 일단 버튼이 비활성화되면 더 이상 탭을 허용하지 않습니다. 즉, 다시 탭할 수 없습니다. 즉, 다시 탭할 수 없습니다. 단추에 대한 customView를 사용하고 직접 모양을 활성화/비활성화합니다.

+3

한 번에 하나씩 만 단추를 구현하려는 경우 Ludovic의 제안을 따르고 UISegmentedControl을 사용해야합니다. –

+0

예. 동의 함. 도구 모음에 분할 된 컨트롤을 어떻게 추가합니까? – Neelesh

관련 문제