범용 앱이 있고 iPad 버전 UISplitViewController
에서 메일 앱과 유사한 인터페이스를 만드는 데 사용 하고 있습니다.
새 Detail 뷰를 푸시하는 데 문제가있어서 UINavigationController
필요에 따라 뷰를 푸시하고 팝할 수 있도록 a를 사용하기로 결정했습니다 . 하지만 내비게이션보기 나 도구 모음을 사용하고 싶지 않습니다. 하지만 내가 무엇을하든 내비게이션 바를 숨길 수 없습니다.
IB에서 “Shows Navigation Bar”의 선택을 취소하고 설정도 시도했습니다.
[self.navigationController setNavigationBarHidden:YES];
에서 viewDidLoad
/ viewDidAppear
/ viewWillAppear
. 나는 또한 푸시 될 각 뷰에서 그것을 시도했습니다. 아무것도 작동하지 않습니다.
내가 여기에 빠진 것이 있습니까? UINavigationController
툴바 나 내비게이션 바없이 를 가질 수 있습니까?
답변
다음을 수행 할 수 있어야합니다.
self.navigationController.navigationBar.isHidden = true //Swift 5
self.navigationController는 (분명히) UINavigationController의 인스턴스입니다. 나를 위해 일하는 것 같지만 이것을 게시하기 전에 간단히 테스트했습니다.
답변
내비게이션 바를 원하지 않고 내비게이션 바가 일반적으로있는 위치까지 콘텐츠를 조정하려면 다음을 사용해야합니다.
self.navigationController.navigationBarHidden = YES;
이것은 다음과 같은 결과를 제공합니다.
반면 self.navigationController.navigationBar.hidden = YES;
navigationBar가 있어야 할 공간을 제공합니다. 이렇게 :
답변
Xcode 4.3.2에서 :
- 스토리 보드에서 내비게이션 컨트롤러 선택
- (오른쪽) 유틸리티 패널에서 Attributes Inspector를 선택합니다.
-
탐색 컨트롤러 카테고리에는 두 개의 확인란이 있습니다.
[] 내비게이션 바 표시
[] 툴바 표시
나를 위해 일했다 …
답변
스위프트 4
viewWillAppear에서 숨 깁니다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.isNavigationBarHidden = true;
}
그런 다음 segue를 누를 때 다시 넣을 수 있습니다 (다음보기에서 뒤로 버튼을 사용하려는 경우).
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
self.navigationController?.isNavigationBarHidden = false;
}
답변
프로그래밍 방식으로 Swift 3
self.navigationController.isNavigationBarHidden = true
또는
self.navigationController.navigationBar.isHidden = true
참고 : iOS 10에서 테스트하는이 두 가지 접근 방식의 차이는 보이지 않았습니다.
답변
이 모든 답변은 여전히 상태 표시 줄 상단에 공백을 남깁니다.이 줄을 추가하여 해당 항목도 제거하세요.
navController.navigationBar.isHidden = true
navController.accessibilityFrame = CGRect.zero