2012-12-06 2 views
3

자신 만의 컨테이너를 작성할 때 UINavigationController 및 UINavigatinBar에 관한 두 가지 질문이 있습니다.컨테이너보기 컨트롤러가있는 탐색 모음에 액세스

1) 스토리 보드로 초기 컨테이너를 만들고 UINavigationController에 포함 시켰습니다. UINavigationBar에 액세스 할 수 내 childViewControllers 찾을 수있는 유일한 방법은 childViewController의 viewDidLoad에이 같은 일을했다 :

UIBarButtonItem *showDetailViewControllerBBI = [[UIBarButtonItem alloc] initWithTitle:@"Show Details" style:UIBarButtonItemStyleBordered target:self action:@selector(switchToCarouselLayout:)]; 
self.parentViewController.navigationItem.leftBarButtonItem = showDetailViewControllerBBI; 

이가 UINavigationBar를 얻을 수있는 적절한 방법이 있나요?

2) UINavigationBar에서 초기 ContainerViewController에 맞을 수 있다고 생각했습니다. 내가 한 것은 스토리 보드에서 UINavigatinController를 삭제하고 UINavigatinBar를 containerViewController 상단에 놓는 것입니다. 프로젝트를 실행할 때 탐색 막대가 표시되지 않습니다. UINavigationController에 포함시키지 않고 초기 컨테이너 뷰 컨트롤러에서 가질 수 없다면 IB의 UINavigationBar은 실제로 무엇을합니까? 아니면 미학을위한 것일 뿐이며 UINavigationControllers에서만 사용할 수 있습니까? 감사.

답변

0

1) 그렇습니다. 저는 어린이보기 컨트롤러에서 무언가를 참조 할 수있는 좋은 방법이라고 생각합니다. 또 다른 방법은 컨테이너 컨트롤러 자체에서 바 버튼 항목을 정의한 다음 대상을 self.childViewControllers.lastObject로 설정하는 것입니다 (단 하나만 있다고 가정).

2) 정상적으로 작동합니다. 탐색 막대에서 드래그 했습니까? 아니면 위쪽 막대의 시뮬레이트 된 메트릭을 탐색 막대로 변경 했습니까? 후자는 IB에서의 시각적 레이아웃을 위해서만, 내가 말할 수있는 한 실제로는 하나도 추가하지 않습니다.

+0

(1) 감사합니다. 내비게이션 컨트롤러의 백스 바 버튼 기능을 계속 사용하려고 할 때 문제가 발생했습니다. (2) 나는 IB에서 1을 드래그했는데 어떤 이유로 그것을 보여주지 못했습니다 ... – Crystal

+0

@Crystal, 그것은 당신이 성취하려는 것을 완전히 명확하지 않습니다. 설정에 대한 세부 정보가 도움이 될 것입니다. – rdelmar

관련 문제