7

iPhone OS 3.0에서는 setToolbarItems:animated: 메서드를 사용하여 UINavigationController의 툴바 항목을 설정할 수 있습니다. 그러나이를 위해서는 UIToolbarItems 배열을 전달해야합니다. 프로그래밍 방식으로 이러한 도구 모음 항목을 만들 수는 있지만 가능한 경우 Interface Builder에서 해당 도구 모음 항목을 만듭니다.도구 모음 설정 UINavigationController 항목

이 점을 염두에두고 "MyGreatViewController.xib"에 UIToolbar를 만들고 원하는 도구 모음 항목으로 채 웁니다. 그런 다음, "MyGreatViewController.m"에, 나는 도구 모음에서 항목을 얻을 setToolbarItems:animated:에게 전달합니다

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self setToolbarItems: [toolbar items]]; 
} 

... toolbar가 함께 IBOutlet은 UIToolbar 참조된다.

좋은 접근 방법입니까? 이 작업을 수행하는 더 좋은 방법이 있습니까? 프로그래밍 방식으로 항목을 작성해야합니까?

+0

내가 뭔가를 이해하지 않는 : 당신이 말하는 "나는 도구 모음에서 항목 가져 오기 "를 선택하면 도구 모음으로 돌아갑니다. 이미 표시되지 않았습니까? – Oscar

답변

4

완벽하게 받아 들일 수있는 방법이지만, xib 파일을로드하는 것은 iPhone에서 상당히 비쌉니다. 따라서 viewDidLoad 메서드에서 프로그래밍 방식으로 툴바 항목을 만드는 것이 더 빠를 수도 있습니다.

+3

좋아요. 뷰 컨트롤러 클래스를 초기화 할 때 XIB가 이미로드되어 있으므로 (보기 컨트롤러 파일을 만들 때 "사용자 인터페이스 용 XIB 사용"을 선택 했음)이 방법은 프로그래밍 방식으로 도구 모음 항목을 만드는 것보다 비용이 많이 들지 않습니다. –

+0

아, 이미 XIB를로드하고 있다면 너무 많은 시간을 추가하지 않을 것입니다. XIB *에서 개체를 보관하는 것은 코드로 만드는 것보다 비용이 많이 듭니다. 그러나보기에 시간이 오래 걸리지 않으면 걱정하지 않을 것입니다. – iKenndac

12

어디서 문서화되어 있는지 모르겠지만 Interface Builder에서 탐색 컨트롤러의 도구 모음을 사용하면 막대 항목을보기 컨트롤러로 드래그하여 자동으로 표시됩니다. 네비게이션 컨트롤러의 툴바.

예를 들어, 우리가 (스노우 레오파드 (Snow Leopard)에 엑스 코드 3.2을 사용) 할 수있는 작업은 다음과 같습니다

  1. 파일 -> 새 프로젝트가 .... 탐색 기반 응용 프로그램을 선택하고 프로젝트를 만듭니다.
  2. Interface Builder에서 MainWindow.xib을 엽니 다.
  3. 탐색 컨트롤러를 선택하고 속성 관리자에서 "도구 모음 표시"상자를 선택하십시오. 이렇게하면 툴바 개체가 나타납니다.
  4. 라이브러리에서 도구 모음으로 바 버튼 항목을 드래그하십시오. 툴바에 나타납니다. NIB에서 계층 구조를 확인하면이 새 항목이 RootViewController의 하위 항목임을 알 수 있습니다.

내비게이션 항목의 하위 항목으로 추가 된 모든 바 버튼 항목이 탐색 모음에 표시되고보기 컨트롤러의 하위 항목으로 추가 된 모든 바 버튼 항목이 툴바에 표시됩니다.

는 (I 실수로이 우연히 사람이 행동에 대한 설명서를 찾을 수 있습니다, 또는 추가 정보를 원하시면, 나는 그것에 대해 듣고 싶습니다합니다..)

+0

나는 그것이 그것이 있어야하는 길 일 뿐이라고 믿습니다. 'UIViewController' 같은 종류의 파일은 일치하는 파일 이름이 있으면 마술 적으로 xib로로드됩니다. – Sneakyness

+0

그것은 작동합니다! 이것은 탐색보기에서 툴바를 설정하는 가장 좋은 방법이라고 생각합니다. – Nathan

+0

내 응용 프로그램에는 Tab Bar Controller가 있으며 탭 중 하나는 navigationController입니다. - 꽤 표준적인 구성입니다. 그러나 Kristopher가 제안하는 것을 따르는 경우 3 단계 후에 툴바가 IB의 Tab Bar 뒤에 나타납니다! 그리고 4 단계 (세그먼트 컨트롤/단추를 추가하려고 시도)를 시도 할 때 툴바에 놓을 수 없습니다. 내가 여기서 뭔가를 놓치고 있니? – Dev