2009-07-11 3 views
5

인터페이스 작성기를 통해 UIBarButtonItem의 식별자를 "추가"(또는 "실행 취소", "다시 실행"등)로 변경할 수 있습니다. 이것은 내 버튼에 멋진 "+"이미지를 제공합니다.UIBarButtonItem의 식별자 속성을 프로그래밍 방식으로 변경

어떻게 프로그래밍 방식으로 설정할 수 있습니까? UIBarButtonItem은 "setIdentifier"메시지를 허용하지 않습니다.

답변

6

일단 생성되면 UIBarButtonItem의 "식별자"를 수정할 수 없습니다. 그러나 버튼을 프로그래밍 방식으로 생성 된 변형으로 대체하여 UI를 변경할 수 있습니다. 당신은 하나 개의 버튼 스타일을 원한다면

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
                      target:self 
                      action:@selector(doAddAction:)]; 
+10

이 게시물의 제목은 오해의 소지가 있습니다. 이것은 UIBarButtonItem의 식별자를 변경하지 않고 식별자 속성을 초기화하여 새 식별자를 만듭니다. 기존 버튼의 식별자를 수정하는 방법을 찾고 있습니다. 더 나은 제목은 "새로 만든 UIBarButtonItem의 식별자 속성을 프로그램 적으로 설정"또는 비슷한 것입니다. – Senseful

+2

내 솔루션을 우연히 발견하여 미안합니다. 귀하의 기대에 미치지 못했습니다. 질문을 할 때 나는 사실 그것을 바꿀 길을 찾고 있었다. 그 해결책은 나에게 도움이되었다. 그렇지 않다면 나는 유감이다. – rein

2

는 : 경계와 식별자 : 예를 들어 카메라를 사용 UIBarButtonItem이 생성되면

UIBarButtonItem *btn; 
btn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shotAction:)]; 
btn.style=UIBarButtonItemStyleBordered; 
0

, 식별자를 변경할 수있는 방법이 없습니다. 그러나 이전 UIBarButtonItem을 대체 할 새 UIBarButtonItem을 만들 수 있습니다.

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction 
                   target:self 
                   action:@selector(buttonClickedAction:)]; 

self.navigationItem.rightBarButtonItem = barButton; 
관련 문제