4

특정보기에서 새 viewController를 스택에 푸시하기 전에 navigationBar를 숨김으로 설정하면 다음 화면이 푸시되기 전에 사라지고 슬라이드 애니메이션이 사라집니다 UIToolbar가 꼭 필요하기 때문에 발생합니다.푸시/팝으로 숨겨진 탐색 모음으로 크기 조정보기

질문 1 : 새로운보기 컨트롤러를 밀고 탐색 표시 줄을 숨김으로 설정하고 새보기 컨트롤러가 화면에 나타날 때까지 숨기기 애니메이션을 가져 오는 방법이 있습니까? 탐색 막대가 숨겨지면서 새로운보기 컨트롤러가 푸시됩니다. 새로운 뷰 컨트롤러가 존재하면 내가 그것을 오프 팝업 때

은 내가 탐색 모음 다시

[self.navigationController.navigationBar setHidden:NO]; 

을 설정하지만이 튀어 될 때 내비게이션 바는 더 이상 백업되지 않습니다. 이 네비게이션 바가 현재 네비게이션 컨트롤러를위한 것이지 팝 후에 새롭게 제공되는 것이 아니기 때문입니까? (질문 2)

질문 3 : 그것을 실현 팝업 이후 소개 된 가져옵니다의 ViewController에, 내 내비게이션 바 표시되지 않습니다, 그 viewDidAppear에, 나는 내비게이션 바을 보여줍니다

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    [self.navigationController.navigationBar setHidden:NO]; 
} 

을 추가하지만, 탐색 막대가 숨겨지고 나머지보기가 빈 공간을 차지한 다음 탐색 모음이 내용 위에 오면보기 크기가 올바르지 않습니다. 이것에 대해 제가 할 수있는 일이 있습니까? 아니면 푸시와 팝으로 잘못 접근하고 있습니까? (질문 # 3).

감사합니다.

답변

0

흥미로운 문제입니다. hidden 속성을 viewWillAppearviewWillDisappear으로 변경할 수도 있지만 원하는 결과가 나타나지 않을 수도 있습니다.

탐색 모음을 표시하지 않고보기 컨트롤러를 모달로 표시 할 수 있습니까? 그것이 스택에있는 마지막 뷰 컨트롤러라면 가능할 것입니다. 사용자가보기 컨트롤러를 다르게 표시하는 것을 더 잘 이해할 수도 있습니다. 이는 사용자에게 뒤로 가기 버튼으로 더 이상이보기 컨트롤러에서 벗어나는 탐색이 완료되지 않았 음을 나타낼 수 있습니다. 탐색 표시 줄을 사라지게하는 것보다 더 합리적 일 수 있습니다.

여전히 오른쪽에서보기 컨트롤러를 밀어 넣으려면 모달보기 컨트롤러로 수행 할 수 없다고 생각합니다. 그러나 화면을 채우는보기를 애니메이션으로 만들면됩니다. (화면의 너비와 동일한 원점 x를 가진 프레임이있는 뷰를 추가하면 애니메이션에서 원점 .x가 0.0으로 변경됩니다. 이에 대한 자세한 정보가 필요하면 알려주십시오.)

그러나보기 컨트롤러는 일반적으로보기가 표시되는 방식과 다른 방식으로보기 컨트롤러를 표시하는 것이 좋습니다. 기본적으로 네비게이션 컨트롤러 내에서 일반적으로 사용자가이보기에서 벗어나도록 허용하지 않기 때문입니다. (질문 3에 대한 제 응답은 '예'일 것입니다.)

1

나는 똑같은 문제를 겪고있었습니다. (역순으로 : 저는 NavigationBar가 숨겨져 있고 NavigationBar 보이는), 실제로는 매우 쉬운 문제가 있습니다.

단순히 통화를 대체 :

[self.navigationController.navigationBar setHidden:NO]; 

내 코드에서

[[self navigationController] setNavigationBarHidden:NO animated:YES];    

으로, 나는 각각의 뷰 컨트롤러의 - (void)viewWillAppear:(BOOL)animated 방법에서 이러한 문은 호출합니다.

방금 ​​(보이는, 숨겨진) 순서대로이 솔루션을 시도했지만 제대로 작동하는 것 같습니다.

관련 문제