Programing

Swift의 첫 번째 ViewController에서 탐색 막대를 숨기는 방법은 무엇입니까?

lottogame 2020. 4. 20. 19:17
반응형

Swift의 첫 번째 ViewController에서 탐색 막대를 숨기는 방법은 무엇입니까?


첫 번째 ViewController 또는 특정 ViewController에서 탐색 모음을 신속하게 숨기려면 어떻게해야합니까?

나는 다음 코드를 사용했다 viewDidLoad():

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController?.isNavigationBarHidden = true
}

또한 viewWillAppear:

override func viewWillAppear(animated: Bool) {
    self.navigationController?.isNavigationBarHidden = true
}

두 방법 모두 탐색 컨트롤러를 모든 ViewController에서 숨 깁니다.


다른 모든보기에 막대가 표시되어야한다는 것을 알고 있으면 viewWillDisappear다시 표시하도록 설정할 수 있습니다.

스위프트에서 :

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    navigationController?.setNavigationBarHidden(false, animated: animated)
}

스위프트 3

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    // Hide the navigation bar on the this view controller
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    // Show the navigation bar on other view controllers
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
}

당신은 숨기기를 해제 할 수 navigationController있는viewWillDisappear

override func viewWillDisappear(animated: Bool)
{
    super.viewWillDisappear(animated)
    self.navigationController?.isNavigationBarHidden = false
}

스위프트 3

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    self.navigationController?.setNavigationBarHidden(false, animated: animated)
}

이를 위해 확장을 만들 수도 있으므로 모든 뷰 컨트롤러에서이 확장을 반복해서 구현하지 않고도 확장을 재사용 할 수 있습니다.

import UIKit

extension UIViewController {
    func hideNavigationBar(){
        // Hide the navigation bar on the this view controller
        self.navigationController?.setNavigationBarHidden(true, animated: true)

    }

    func showNavigationBar() {
        // Show the navigation bar on other view controllers
        self.navigationController?.setNavigationBarHidden(false, animated: true)
    }

}

따라서 다음과 같이 확장 방법을 사용할 수 있습니다

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        hideNavigationBar()
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        showNavigationBar()
    }

Swift 3에서는 isNavigationBarHidden Property를 사용하여 탐색 막대를 표시하거나 숨길 수도 있습니다.

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    // Hide the navigation bar for current view controller
    self.navigationController?.isNavigationBarHidden = true;
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    // Show the navigation bar on other view controllers
   self.navigationController?.isNavigationBarHidden = false;
}

Swift에서 탐색 표시 줄을 표시하는 방법 :

self.navigationController?.setNavigationBarHidden(false, animated: true)
self.navigationController?.navigationBar.isHidden = false
self.navigationController?.isNavigationBarHidden = false

Swift에서 탐색 막대를 숨기는 방법 :

self.navigationController?.setNavigationBarHidden(true, animated: true)
self.navigationController?.navigationBar.isHidden = true
self.navigationController?.isNavigationBarHidden = true

iOS 8에서는 다음과 같이하십시오.

navigationController?.hidesBarsOnTap = true

그러나 UINavigationController 의 일부인 경우에만

다시 원하면 허위로


위의 변형을 사용하고 다른 NavController에 포함되도록 앱의 섹션을 분리합니다. 이렇게하면 가시성을 재설정 할 필요가 없습니다. 예를 들어 시작 시퀀스에 매우 유용합니다.


 private func setupView() {
        view.backgroundColor = .white
        navigationController?.setNavigationBarHidden(true, animated: false)
    }

창 컨트롤러 (Swift3)에서 수행 할 수 있습니다.

class WindowController: NSWindowController {

    override func windowDidLoad() {
        super.windowDidLoad()

        window?.titleVisibility = .hidden
    }
}

참고 URL : https://stackoverflow.com/questions/29209453/how-to-hide-a-navigation-bar-from-first-viewcontroller-in-swift

반응형