본문 바로가기
Swift

[Swift] NavigationBar의 Title높이가 이상할때 원인

by Jimmy_iOS 2023. 10. 2.

요약

네비게이션 타이틀의 위치 문제가 발생했습니다.

이 문제의 원인은 네비게이션 컨트롤러가 중첩되어 있었기 때문입니다.

SceneDelegate에서 TabBarController를 NavigationController 안에 중첩했으며,

TabBarController에서 FirstVC를 생성할 때도 NavigationController에 중첩되었습니다.

이 문제를 해결하기 위해 나는 SceneDelegate에서 NavigationController를 제거하여 문제를 해결했습니다.

문제

아래 (좌측) 뷰 컨트롤러의 Title이 살짝 아래로 내려가 있는 것을 확인할 수 있습니다.

원래는 (우측) 뷰 컨트롤러처럼 Title이 상단에 가까워야 합니다.

문제의 뷰컨트롤러

정상적인 뷰컨트롤러

뷰 계층

이상해서 뷰의 계층을 살펴봤습니다.

그런데 NavigationController의 NavigationBar가 2개가 중첩되어있지 뭡니까??

원인을 찾아보니 SceneDelegate에서 TabBarController를 Navigation 안에 넣고,

TabBarController에서 FirstVC를 만들 때 또 NavigationController에 넣어서 중첩되었던 것입니다.

이 문제를 해결하기 위해 SceneDelegate에서 NavigationController를 제거하여

다음과 같이 문제를 해결했습니다.

하지만 이로 인해 1시간이 날아갔습니다.

이 모든 문제의 원인은 코드 스니펫을 무지성으로 사용한 결과입니다…


Uploaded by N2T