728x90
반응형
이번시간에는 navigationbar를 자유자재로 각 뷰마다 보이거나 숨기도록 하는 방법을 알아봅시다.
깃허브 링크에 들어가보시면 아래앱의 전체 코드가 있습니다.
위 이미지에 보시다싶이 제 앱에선 상단의 navigationbar가 항상 존재하지않습니다.
메인화면에선 없구요, 항상 어딘가를 들어가야(뎁스가 늘어나야) 존재하게 됩니다.
이렇게 navigationbar를 숨기거나 나타내는 방법에는 두가지가 있습니다.
setNavigationBarHidden(_:animated:)
첫번째 파라미터는 숨김여부 bool,
두번째 파라미터는 애니메이션여부 bool입니다.
파라미터에서부터 보면 알수있죠?
animated를 통해서 애니메이션 여부를 결정할 수 있습니다.
사용방법은 아래와 같습니다.
func 어떤 메서드() {
// 애니메이션과 함께 없애기
navigationController?.setNavigationBarHidden(true, animated: true)
// 애니메이션 없이 나타내기
navigationController?.setNavigationBarHidden(false, animated: false)
}
현재뷰는 내비바가 없으나 다음 뷰로 넘어갈 때, 다음뷰에서는 내비바가 존재해야하는 경우에 주로 사용합니다.
isNavigationBarHidden
이 친구는 navigationController의 bool형 프로퍼티인데요, 따로 애니메이션을 바로 추가할 수 없이 그냥 설정됩니다.
사용방법은 아래와 같습니다.
func 어떤 메서드() {
navigationController?.isNavigationBarHidden = false // 나타내기
navigationController?.isNavigationBarHidden = true // 숨기기
}
제가 했던것처럼 특정 뷰의 내비바를 아예 없는상태로 만들어버릴때 유용할 것 같습니다.
아래의 글을 참고하였습니다.
https://velog.io/@ryan-son/Swift-특정-View-Controller에서-Navigation-Bar-숨기기
728x90
반응형
'공부 > Apple' 카테고리의 다른 글
[Swift] frame과 bounds (0) | 2024.10.19 |
---|---|
[Swift] viewWillLayoutSubviews(), viewDidLayoutSubviews() (0) | 2024.09.23 |
[Swift] Update Cycle (0) | 2024.09.22 |
[UIKit] 다크모드, 라이트 모드 고정 (0) | 2024.09.01 |
[UIKit] UITextView placeholder (0) | 2024.08.13 |