0

시스템 UIBarButton을 만들고 싶지만 일반 스타일을 원합니다.
이 코드로 시도했지만 스타일은 무시됩니다. 무엇이 문제입니까?UIBarButtonItemStyle을 사용하여 UIBarButtonSystemItem 만들기

UIBarButtonItem *search = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(showSearch)];  
search.style = UIBarButtonItemStylePlain; 
self.navigationItem.rightBarButtonItem = search; 
[search release]; 
+0

'search.style = UIBarButtonItemStylePlain,'UIBarButtonItemStylePlain'이 클래스의 스타일 속성에 대한 기본값 그대로 '불필요하다. [UIBarButtonItem_Class] (http://developer.apple.com/library/ios/documentation/uikit/reference/UIBarButtonItem_Class/UIBarButtonItem_Class.pdf). – chown

+0

테두리를 제거하려고 추가합니다. 설명서에 따르면 일반 스타일이 기본값이지만 내 경우에는 그렇지 않습니다. 시스템 버튼이 경계로 표시됩니다. – pasine

답변

0

비슷한 스레드가 발견되었습니다. here.

이 계획을 세우는 방법은 사용자 지정 UIButton을 만들고이를 막대 단추에 할당하는 것입니다.

+1

UIButton 사용하기 자신의 이미지를 만드는 것을 피하는 시스템 버튼의 장점을 잃어 버렸습니다. – pasine

+0

나는 이해한다. 코드에서 이것을 시도하지 않고 확인할 수는 없지만, 이것이 여기서 문제가 될 수 있는지 궁금합니다. - 아마도 시스템 버튼은 기본적으로 자체 테두리 스타일을 가지고있을 것입니다. 시간이 좀 있어도 그걸 들여다 볼 것입니다. – Madhu

+0

나는 이미지를 만드는 것을 끝내었다. 내가 찾던 것이 아니라 유일한 해결책 인 것 같습니다. – pasine

2

여기서 중요한 점은 밀어 넣으려는 컨트롤러가 아닌 이전 컨트롤러에 단추를 배치해야한다는 것입니다.

//Your actual ViewController 
UIBarButtonItem *search = [[UIBarButtonItem alloc] 
initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(showSearch)];  
search.style = UIBarButtonItemStylePlain; 
self.navigationItem.rightBarButtonItem = search; 
[search release]; 

//Controller that is going to be pushed and will display the new UIBarButtonItem 
[self.navigationController pushViewController:newViewController animated:YES];