곤니찌와! 안녕하세요 후르륵짭짭 입니다.
이번에는 네비게이션 바에 대해서 다뤄 볼까 합니다.
앱을 만드면서 안 쓸려고 해도 무조건 써야하는 Navigation Bar!
이번에는 내용이 많아서 1부 부터 3부로 나눠서 할려고 합니다.
1 부에는 네비게이션의 배경화면을 지우는 방법을 알려드릴겁니다.
일단!!!!
네비게이션을 코드로 작성하실 때,
navigationController?.navigationBar 와 navigationItem
일단 이 둘의 차이를 아셔야합니다.
navigationController?.navigationBar : 모든 네비게이션에 적용 할 때
navigationItem : 특정 네비게이션 화면에 적용 할 때
쉽죠??? ㅎㅎㅎㅎ
그렇다면 본격적으로 본문의 내용을 다뤄보겠습니다.
1) 네비게이션의 배경화면을 지우는 방법
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
이 코드를 사용해주시면 됩니다. setBackgroundImage는 딱 봐도 배경이미지를 의미하는게 느껴지시죠?
그래서 아무것도 주지 않는 UIImage()를 넣어주면 배경화면이 없어집니다.
그렇다면 다시 네비게이션의 배경화면을 살릴려면 어떻게 해야할 까요?
self.navigationController?.navigationBar.setBackgroundImage(.none, for: .default)
을 해주시면 초기 배경화면으로 넘어 옵니다.
2) 네비게이션의 경계선을 지우는 방법
이건 위에 내용 보다 더욱 간단합니다.
navigationController?.navigationBar.shadowImage = UIImage()
이렇게 적어주면 됩니다. 그럼 당연히 다시 원래대로 돌아가려면 .none을 넣어주면 되겠죠?
navigationController?.navigationBar.shadowImage = .none
간단합니다.
그러나 주의사항!!!
위에서 navigationController?.navigationBar는 모든 네비게이션에 적용이 된다 했죠?
그래서 특정 뷰에서 다시 원래대로 돌아가려면 꼭 다시 설정 해줘야합니다.
그렇다면 언제가 좋을 까요???
앱을 개발하면 앱의 생명주기 내용에 나오는
viewDidLoad() : 메모리에 이 뷰가 올라 갔을 때
viewWillAppear() : 매번 뷰가 보일 때
을 알겁니다.
viewDidLoad()는 메모리에서 삭제 되지 않으면 계속 남아있죠. 그래서 삭제 해줄 때 까지 다시 재생되지 않습니다.
하지만 viewWillAppear() 같은 경우는 매번 뷰가 다시 보일 때 마다 실행이 됩니다.
그래서 네비게이션 같은 내용은 매번 보여줘야하니깐 viewWillAppear()에 보여주는게 좋을 겁니다.
그리고 마지막 사모에드 이미지를 제공해준 unsplash.com/@luipeng 에 감사합니다
** 네비게이션 관련코드 **
'Xcode > IOS' 카테고리의 다른 글
IOS) Pull to Refresh에 대해 알아보자 1부 (2) | 2020.07.06 |
---|---|
IOS) Animation에 대해서 알아보자 (1) | 2020.07.03 |
IOS) Navigation Bar title 변경하기 (0) | 2020.07.02 |
IOS) Navigation Bar에 대해서 알아가기 2부 (0) | 2020.06.30 |
IOS)Navigation과 StatusBar 변경하기! (0) | 2020.06.27 |
댓글