[Swift] 특정 View Controller에서 Navigation Bar 숨기기 (메서드와 프로퍼티 비교)

Ryan (Geonhee) Son·2021년 4월 20일
1

Study Stack

목록 보기
8/34

Navigation Controller의 흐름 속에서 특정 화면에서는 Navigation Bar가 보이지 않게끔 설정해야할 때가 있죠? 그럴 때는 코드를 통해 해결할 수 있는데요, 두 가지 방법을 알아보겠습니다.

  1. setNavigationBarHidden(_:animated:) 메서드 이용
  • 이 메서드를 이용하면 Navigation Bar를 숨기고 나타낼 때 애니메이션을 적용할 수 있습니다.
override func viewWillAppear(_ animated: Bool) {
  navigationController?.setNavigationBarHidden(true, animated: true) // 뷰 컨트롤러가 나타날 때 숨기기
}

override func viewWillDisappear(_ animated: Bool) {
  navigationController?.setNavigationBarHidden(false, animated: true) // 뷰 컨트롤러가 사라질 때 나타내기
}
  1. isNavigationBarHidden 프로퍼티 이용
  • 이 프로퍼티를 이용하면 애니메이션을 이용할 수 없지만 Navigation Bar를 숨기고 나타낼 수 있습니다. 애니메이션이 필요 없는 경우에 사용합니다.
override func viewWillAppear(_ animated: Bool) {
  navigationController?.isNavigationBarHidden = true // 뷰 컨트롤러가 나타날 때 숨기기
}

override func viewWillDisappear(_ animated: Bool) {
  navigationController?.isNavigationBarHidden = false // 뷰 컨트롤러가 사라질 때 나타내기
}
profile
합리적인 해법 찾기를 좋아합니다.

0개의 댓글