2014-10-18 2 views
1

툴바가 활성화 된 탐색 컨트롤러가 있습니다. 탐색 컨트롤러에 포함 된 MKMapView가있는보기 컨트롤러가 있습니다. 시뮬레이터에서 실행하면 툴바가 나타납니다. 그러나 코드에서 UIBarButtonItem을 추가하려고하면 UIBarButtonItem이 도구 모음에 표시되지 않습니다. 단추를 추가하려면 viewDidAppear 메서드에 다음 코드가 포함되어 있습니다.UIToolbar Swift에 UIBarButtonItem이 표시되지 않습니다.

var trackingButton:MKUserTrackingBarButtonItem = MKUserTrackingBarButtonItem(mapView: self.theMapView) 
    self.navigationController?.toolbarItems?.append(trackingButton) 
    //self.toolbarItems?.append(trackingButton) also doesn't work 

어떤 문제가 발생했는지에 대한 아이디어가 있습니까?

답변

2

이것은 의도 한 기능입니다. 문서에 따르면 :

네비게이션 컨트롤러와 관련된 사용자 지정 도구 모음. (읽기 전용)

이 속성에는 내비게이션 컨트롤러 에 의해 관리되는 기본 제공 도구 모음에 대한 참조가 포함되어 있습니다. 이 도구 모음에 대한 액세스는 도구 모음에서 작업 시트를 표시하려는 클라이언트의 경우에만 으로 제공됩니다. 은 UIToolbar 개체를 직접 수정하면 안됩니다. 이 도구 모음의 내용 관리는이보기 컨트롤러와 연결된 사용자 지정보기 컨트롤러 을 통해 수행됩니다. 탐색 스택에있는 각보기 컨트롤러 에 대해 UIViewController의 setToolbarItems : animated : 메서드를 사용하여 도구 모음 항목 의 사용자 지정 집합을 할당 할 수 있습니다.

이 툴바의 표시 여부는 toolbarHidden 속성에 의해 제어됩니다. 도구 모음은 또한 현재 표시되는보기 컨트롤러의 hidesBottomBarWhenPushed 속성 을 따르고 필요에 따라 자동으로 을 표시하고 보여줍니다.

즉, navigationController.toolbar.setItems을 사용할 수 없습니다. navControllers 메소드 (예 : navigationController.setToolbarItems

)를 사용해야합니다.
관련 문제