programing tip

네비게이션 바가없는 UINavigationController?

itbloger 2020. 7. 21. 08:04
반응형

네비게이션 바가없는 UINavigationController?


범용 앱이 있고 iPad 버전 UISplitViewController에서 Mail 앱과 유사한 인터페이스를 만드는 데 사용 하고 있습니다.

새로운 Detail 뷰를 푸시하는 데 문제가 UINavigationController있었으므로 필요에 따라 뷰를 푸시하고 팝업 할 수 있도록 사용하기로 결정했습니다 . 그러나 탐색 뷰 또는 도구 모음을 사용하고 싶지 않습니다. 그러나 내가하는 일에 관계없이 탐색 모음을 숨길 수 없습니다.

IB에서 "Show Navigation Navigation Bar"를 선택 해제하고 설정을 시도했습니다.

[self.navigationController setNavigationBarHidden:YES];

에서 viewDidLoad/ viewDidAppear/ viewWillAppear. 또한 푸시 될 각보기에서 시도했습니다. 아무것도 작동하지 않습니다.

내가 여기서 놓친 것이 있습니까? UINavigationController도구 모음이나 탐색 모음 없는 것이 가능 합니까?


다음을 수행 할 수 있어야합니다.

self.navigationController.navigationBar.hidden = YES;

여기서 self.navigationController는 UINavigationController의 인스턴스입니다. 나를 위해 일하는 것 같지만 이것을 게시하기 전에 간단히 테스트했습니다.


탐색 표시 줄을 원하지 않고 탐색 표시 줄이 정상적으로 표시되는 위치까지 내용을 조정하려면

self.navigationController.navigationBarHidden = YES;

결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

반면 self.navigationController.navigationBar.hidden = YES;navigationBar가 있어야 할 공간을 제공합니다. 이처럼 :

여기에 이미지 설명을 입력하십시오


Xcode 4.3.2에서 :

  1. 스토리 보드에서 탐색 컨트롤러를 선택하십시오.
  2. (오른쪽) 유틸리티 패널에서 속성 관리자를 선택하십시오.
  3. Navigation Controller 범주에는 두 개의 확인란이 있습니다.

    [] 내비게이션 바 표시

    [] 툴바를 표시합니다

나를 위해 일했다 ...


스위프트 4

보기에서 숨 깁니다

     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;
     }

프로그래밍 방식으로 스위프트 3

self.navigationController.isNavigationBarHidden = true

또는

self.navigationController.navigationBar.isHidden = true

참고 : iOS 10에서 테스트 한이 두 가지 접근법 사이에는 차이가 없었습니다.

참고 URL : https://stackoverflow.com/questions/5765946/uinavigationcontroller-without-navigation-bar

반응형