2011-04-13 2 views
2

인터페이스 빌더에서 UIBarButton 항목을 생성하고이를 클래스의 UIBarButton 항목 속성에 연결했습니다. 인터페이스 작성기에서 스타일 = 일반식별자 = 사용자 지정 및 해당 제목이 비어 있습니다입니다.Interface Builder에서 UIBarButtonItem 뷰를 프로그래밍 방식으로 수정 한 후이를 수정하는 방법은 무엇입니까?

viewDidLoad 메서드의 클래스 파일에서이 UIBarButtonItem 속성에 사용자 지정보기를 추가하려고합니다.

예컨대

UISegmentedControl *newButton = [[UISegmentedControl alloc] initWithItems:....]; 
newButton.momentary = YES; 
newButton.segmentedControlStyle = UISegmentedControlStyleBar; 
newButton.tintColor = [UIColor .....]; 

[self.myBarButtonItem setCustomView:newButton]; 

이 전혀 나타나지 NOTHING 발생합니다. 왜 그런가요?

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:newButton]; 

다음 도구 모음이 BarButtonItem를 추가 - 그것은 것 일 :

내가 프로그래밍 UIBarButtonItem을 만들 경우 읽었습니다. 내 문제는 내 물건을 많이 가지고 내 도구 모음 및이 UIBarButton 항목을 바로 도구 모음의 오른쪽에 있어야합니다 및 인터페이스 작성기에서 직접 연결할 수없는 경우 모든 빌드해야 할 것이라고 내 프로그래밍 방식으로 도구 모음 항목을 사용하여 필요한 레이아웃을 얻습니다.

그래서 IB에서 생성 된 UIBarButtonItem에 연결할 때 customView를 사용하여이 작업을 수행 할 수 있습니까?

감사합니다.

+0

나는 i가 더 이상 그런 값싼 놈으로 나오지 않도록 내가 사용하고자하는 접근 방식으로 내 대답을 편집했습니다.) –

답변

3

UIToolBar에있는 항목을 변경하려면 items 속성을 사용하십시오. 그게 당신의 질문에 대답해야합니다 How to programmatically replace UIToolBar items built in IB

편집 :

내가 그와 함께 일을 좋아하는 방법, 각 uibarbuttonitem에 대한 뷰 컨트롤러 클래스에 IBOutlets의 무리를 만들 수 있습니다. 인터페이스 빌더에서는 도구 모음에있는 첫 번째 (기본) 항목을 도구 모음 하위보기로 배치하고 나머지는 모두 xib의 최상위 항목으로 연결합니다 (연결된보기와 동일한 수준). 뷰 컨트롤러의 .view 속성 아울렛). 그런 식으로 프로그래밍 방식으로 만들 필요가 없습니다. 그리고 나중에 그들을 uitolbar에 붙이기 위해 숨겨져 있습니다.

ivar IBOutlets (@property IBOutlets와 반대)를 xib에 연결되어 있지 않은 xib의 모든 최상위 객체로 사용하는 경우 최상위 레벨 IBOutlet에서 release를 호출하는 것보다이 방법을 사용하는 경우 KVC 편집자 참조.

관련 문제