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
다시 표시되도록 설정합니다.
Swift의 경우:
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(animated: Bool){
// Hide the navigation bar on the this view controller
self.navigationController?.setNavigationBarHidden(true, animated: animated)
}
func showNavigationBar(animated: Bool) {
// Show the navigation bar on other view controllers
self.navigationController?.setNavigationBarHidden(false, animated: animated)
}
}
따라서 다음과 같이 확장 방법을 사용할 수 있습니다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
hideNavigationBar(animated: animated)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
showNavigationBar(animated: animated)
}
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(true, animated: true)
self.navigationController?.navigationBar.isHidden = true
self.navigationController?.isNavigationBarHidden = true
첫 번째 뷰 컨트롤러에서 탐색 막대를 숨기려는 경우
override func viewWillAppear(animated: Bool) {
self.navigationController?.isNavigationBarHidden = true
}
두 번째 뷰 컨트롤러에 네비게이션 바를 표시하다
override func viewWillAppear(animated: Bool) {
self.navigationController?.isNavigationBarHidden = false
}
Swift에서 탐색 모음을 표시하는 방법:
self.navigationController?.setNavigationBarHidden(false, animated: true)
self.navigationController?.navigationBar.isHidden = false
self.navigationController?.isNavigationBarHidden = false
private func setupView() {
view.backgroundColor = .white
navigationController?.setNavigationBarHidden(true, animated: false)
}
대안
viewDiLoad에서 이 설정을 사용했습니까?
title = "Madman"
navigationController?.isNavigationBarHidden = false
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
Collectionview, Scrollview 또는 tableView의 제약조건을 확인합니다.
NSLayoutConstraint.activate([
tableView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor),
tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor)
])
/*. Swift 5 */
let controller = self.storyboard?.instantiateViewController(withIdentifier: "sc_userNavigation") as! UserNavigationViewController
let navigationController = UINavigationController(rootViewController: controller)
navigationController.setNavigationBarHidden(true, animated: false)
navigationController.modalPresentationStyle = .fullScreen
self.present(navigationController, animated: false, completion: nil)
IOS 8에서는 다음과 같이 합니다.
navigationController?.hidesBarsOnTap = true
단, UINavigation Controller의 일부일 경우에만
돌려받고 싶을 때 거짓으로 만들어라
위의 변형을 사용하여 다른 NavController에 내장되어 있는 앱의 섹션을 분리합니다.이렇게 하면 시야를 재설정할 필요가 없습니다.예를 들어 시작 시퀀스에서 매우 유용합니다.
뷰의 set hide method를 호출합니다.Will as are and Delete 。호출하지 않을 경우 표시된 메서드는 상태가 false로 사라집니다.전체 탐색 계층에서 탐색 모음을 숨깁니다.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.setNavigationBarHidden(false, animated:true)
}
윈도우 컨트롤러(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
'code' 카테고리의 다른 글
DataTable을 Excel로 내보내는 방법 (0) | 2023.04.18 |
---|---|
함수 또는 커스텀 함수를 통해 Excel에서 regex 지원을 받으려면 어떻게 해야 합니까? (0) | 2023.04.18 |
Git에서 파일 이동/이름 변경 및 이력 유지가 가능합니까? (0) | 2023.04.18 |
Excel 파일(.xlsx)을 작성 및 쓰는 방법 (0) | 2023.04.18 |
n일보다 오래된 디렉토리를 삭제하는 셸 스크립트 (0) | 2023.04.18 |