본문 바로가기
Swfit

Navigation Large Title 버그 해결하기

by GGShin 2022. 2. 26.

네비게이션 뷰 컨트롤러를 사용하면 타이틀을 설정할 수 있는고,

그 타이틀을 default로 작게 나타나게 둘 수도 있고 Large title로 설정할 수도 있다.

 

large title로 설정해두더라도 정상적으로라면 다른 화면으로 전환된 후에는 타이틀이 default 타이틀처럼 작게 변한다.  

[Large title]
[Default title]

그런데 이번에 화면 전환이 된 후에도 타이틀이 large 로 나타나는 현상이 있었다. 

다른 세그웨이 전환 시에는 정상적으로 됐는데 나머지 세그웨이 전환에서만 이상현상이 있었다.

수정화면으로 전환했을 때에도 Heritage라는 타이틀이 크게 나온다.

한 가지 더 이상한 점은, 오류가 없는 세그웨이로 전환을 한 뒤에 문제가 되는 세그웨이 전환을 하면 갑자기 그 문제가 사라져 있었다는 것이었다. 

 

다른 화면으로 전환한 후에 다시 수정화면을 누르면 Large타이틀 적용이 해제된다.

 

화면이 처음에는 나오지 않고 다른 세그웨이를 한 번 실행한 후 다시 문제가 있던 뷰로 이동하는 세그웨이를 실행시켜야지만이 화면이 나와 어디가 문제인지 알 수가 없었다. 

처음에는 심지어 타이틀 색상이 검정색이 아니라 글자가 보이지도 않았고

딱 하나 있던 라벨이 가려지는 위치에 놓여있어, 뷰 자체가 제대로 안나오는 줄 알았다.

그러다 보니 클루가 없어 엄청 고생했는데

어찌어찌 타이틀 문제라는 걸 알게됐고 해결 방법은 언제나 그렇듯 생각보다 간단했다.

 

바로 large 사이즈 타이틀이 나오길 원치 않는 뷰 컨트롤러에 아래 코드 4번 라인과 같이 largeTitleDisplayMode를 never로 설정해주면 됐다. 그러면 라지 타이틀이 비활성화 되어 더 이상 버그가 나오지 않게 되었다! 👍🏼

1
2
3
4
5
override func viewDidLoad() {
        super.viewDidLoad() 
        //라지 타이틀 해제
        navigationItem.largeTitleDisplayMode = .never
 }
cs

이렇게 또 하나의 고비를 넘겼다 ☺️

 

+

폭풍 구글 서치를 하며 

네비게이션바 라지 타이틀과 관련된 몇 가지 오류들이 있다는 것을 추가적으로 알게되었다. 

아래 링크에 오류 종류와 해결법에 대해 나와있어서 추후에 참고해도 좋을 것 같다. 

https://swiftsenpai.com/development/large-title-uinavigationbar-glitches/

 

The Large Title UINavigationBar Glitches and How to Fix Them

Check out this article to find out the glitches you might get when adopting the large title UINavigationBar, and how to fix each of them.

swiftsenpai.com

그리고 다른 링크 하나는 결정적으로 아이디어를 준 블로그.

https://www.markusbodner.com/til/2017/10/08/fix-large-navigation-bar-title-not-hiding-on-scroll-in-ios-11/

 

Fix large navigation bar title not hiding on scroll in iOS 11

iOS 11 introduced large navigation bar titles. They look great and you should use them on main views. When you use large titles on a UITableViewController everything works as expected. On scroll the large title hides with a nice animation and returns to a

www.markusbodner.com

 

반응형

'Swfit' 카테고리의 다른 글

UIButton 코드로 작성하기  (0) 2022.03.03
NumberOfLines 값 설정이 안될 때  (0) 2022.02.28
UITextView코드로 작성하기  (0) 2022.02.24
UITextField 코드로 작성하기  (0) 2022.02.23
TableView 사용법  (0) 2022.02.08