(초기) 내비게이션 컨트롤러는 화면 상에 하나의 툴바를 사용할 수없고 스크린 상에 다른 항목을 슬라이딩 할 수 없기 때문에 Apple은 마스터 툴바를 숨기기로 선택했다고 생각합니다. Apple의 Mail 앱을 보면, 보시는 것처럼 푸시 애니메이션 중에 주 도구 모음이 사라집니다.
흥미롭게도, 캘린더 앱은 요일 및 이벤트보기 컨트롤러 전환 사이의 멋진 멋진 도구 모음 crossFade를 사용합니다. 애니메이션을 보면 두 번째 툴바가 첫 번째 툴바 위에 움직이는 대신 두 개의 뷰에 대해 하나의 툴바임을 알 수 있습니다.
crossFade는 UINavigationController
에 의해 비공개로 지원되지만 Apple은이 특정보기 컨트롤러 애니메이션에 대해 개인적으로 지원하지 않습니다. _shouldCrossFadeBottomBars
은 NO를 반환하고 delegateShouldCrossFadeBottomBars
탐색 컨트롤러 플래그에 대한 설정자가 없습니다.
통합 스토리 보드 하단 막대 애니메이션 UISplitViewController
에 대한 지원 요청과 함께 버그 보고서를 제출합니다. 나는 애플이 아이폰의 분할 뷰 컨트롤러 기능을 향상시킬 것이라고 생각한다.
한편, 기본 탐색 컨트롤러의 도구 모음을 숨기고 마스터보기 컨트롤러의 스토리 보드에 도구 모음을 추가하여이를 처리 할 수 있습니다. 이렇게하면 마스터보기 컨트롤러 자체의 도구 모음이 화면 상에 표시되고 상세보기 컨트롤러의 도구 모음 항목은 슬라이드됩니다.
이렇게하면 주인의 UITableViewController
이 UIViewController
으로 변경됩니다. UIToolbar
및 제약 조건을 추가하십시오. 테이블의 경우 UITableView
에 넣거나 컨테이너보기를 사용하여 UITableviewController
에 연결할 수 있습니다.
세부보기의 도구 모음을 DetailViewController
에 설치하십시오. 뷰가 나타나기 전에
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] init ...];
self.toolbarItems = @[barButtonItem];
[self configureView];
}
내비게이션 제어기 (뷰가로드 된 후) 툴바 항목을 설정 한 것이며, 툴바의 상세보기와 함께 스크린 상에 푸시한다.
궁금한 점이 있다면 수평 컴팩트 사이즈 클래스의 상세보기 도구 모음에서 계속 진행되는 것으로 알고 있습니다. 보조 탐색 컨트롤러 인 이 아닌 세부보기 컨트롤러가 기본 탐색 컨트롤러 스택으로 푸시됩니다.기본 탐색 컨트롤러는 보조 탐색 컨트롤러에서 해당보기 (자세히)보기 컨트롤러에 속한 navigationItems
(및 toolbarItems
)과 함께 해당 장식을 선택합니다.
불행히도 분할보기의 보조 (내비게이션) 컨트롤러를 접는 장면의 속임수는 기본 탐색 컨트롤러가 보조 탐색 컨트롤러가 처리하는 것이었기 때문에 툴바에 영향을 미칩니다.
보조 탐색기 컨트롤러에서 세부보기 컨트롤러로 보조 도구 모음을 이동하면 보조 탐색 컨트롤러가 밀릴 때 주 탐색 컨트롤러가 자세히보기 컨트롤러의 도구 모음 애니메이션을 처리 할 수 있습니다.
향후 업데이트에서 분할보기 컨트롤러가 스토리 보드 도구 모음을 애니메이션으로 만들 수는 있지만 현재로서는 코드 작성 방법을 알고있는 유일한 방법입니다.
아주 좋은 설명; 분명하고 심오합니다. "그것은 기본 탐색 컨트롤러 스택에 밀어 넣어지는 디테일 뷰 컨트롤러가 아닌 보조 탐색 컨트롤러입니다." 옳은. 나는 이것에 대해 논평했다. 놀랍지 만 전혀 작동하지 않는다. https://devforums.apple.com/message/1056959#1056959 애플 내부 담당자의 유용한 응답. – matt
어쩌면,하지만 돌아가서 알아 내야 할 것 같습니다. 지금 당장 나는 첫 번째 초안을 통과하기를 원한다. 어떻게하는지 알면 어쩌면 내가 훔칠 수있는 github의 예제 프로젝트를 만들 수 있습니다 ...? :) – matt
와우. 그것은 확실히 문서 누락입니다. 그들은 몇 가지 적응 관련 WWDC 2014 비디오 중 하나에서 이것에 관해 뭔가를 말했을 것입니다 ...! 물론 그들은 이것에 관해서는 아무 말도하지 않았지만 아직 결정적인 것으로 드러났습니다 : http://stackoverflow.com/a/26591842/341994 – matt