티스토리 뷰

SwiftUI

SwiftUI ) NavigationView

Zedd0202 2020. 3. 29. 16:08
반응형

 

안녕하세요 :) Zedd입니다.

SwiftUI의 NavigationView 공부를 기록해놓으려고 합니다 :D

 

NavigationView는 말 그대로..UIKit의 UINavigationController 역할을 한다고 보면 되겠죠? 

NavigationView의 정의를 잠깐 보고 가자면,

 

navigation hierarchy에서 경로를 나타내는 여러 View를 표시하기 위한 View..

(원문에는 representing a visible path(가시경로..?)로 나오는데 저는 그냥 경로라고...)

 

사용법은 보여주고 싶은 View를 NavigationView로 감싸주기만 하면 됩니다.

그럼 아직 아무것도 안나올텐데요.

NavigationBarTitle이나 NavigationItem을 추가해줘야 GNB영역이 나오게 됩니다.

NavigationTitle을 추가하는 메소드는 navigationBarTitle

NavigationItem을 추가하는 메소드는 navigationBarItem입니다.

 

일단 저는 실수...한게 있는데..

자, NavigationView의 영역(?)..이 뭐라해 암튼 Navigation이 시작하고 끝나는 부분이 저기잖아요?

그래서 저는

아 ㅇㅋㅇㅋ

이렇게 하는 건 줄 알았어요.

뭐 누가 가르쳐준건 아니지만 그냥 이렇게 하면 동작할거라고 생각했음..

하지만 여전히

응 안나와

왜냐면

 

navigationBarTitle은 View가 NavigationView내부에 있고,

NavigationView내에서 표시되는 경우에만 적용이 되기 때문이에요

(navigationBarItem 도 마찬가지.)

(navigationBarTitle문서에 친절하게 나와있음 ㅎ....)

 

그래서

NavigationBarTitlte을 보여주려면

이렇게 내가 보여주려는 View안에 넣어줘야합니다.

그럼 잘 나온 것을 볼 수 있죠!! 

하ㅎ ㅏ;....ㅎㅎㅎ

NavigationTitle의 DisplayMode도 설정할 수 있는데요, 

저는 inline으로 줘볼게요. 

이렇게 주면 된답니다. displayMode에 들어갈 수 있는건

이렇게 3가지가 있어요. 

기본적으로 automatic인가보네..

 

navigationBarItem도 해봅시다!

짱쉬움

gist를 계속 만드는건...귀찮으니까요!!!!!!!!!!!!!

뭐 당연히 저기에 Button이 들어가야하겠지만...걍 일단 Text...

View 프로토콜을 채택하는 어떤 View든 들어갈 수 있습니다. 

자 이렇게 하면 어떤 결과가 나올까요..!?!?!

leading과 trailing 둘 다 들어가있을거라고 생각했지만......마지막꺼만 들어가는 것이어따..

2개 다 넣고 싶으면

2개 넣는 이니셜라이저가 있으니..이걸 쓰면 되는 것 같습니다.

아니 따로따로 하면 안되는 이유가....특별히 있나...

아무튼 저같이 NavigationView자체에..title이랑 barItem을 주는 실수를 하지 않길 바라며..

 

아니 근데 쓰고보니까 너무...너무 기본적인건데..마치 나만 몰랐던 걸 쓴 느낌

ㅈㅓ같이 실수하는 사람 한명쯤은 있겠죠

 

반응형
댓글
  • 프로필사진 익명 비밀댓글입니다 2020.03.31 18:28
  • 프로필사진 Favicon of https://zeddios.tistory.com BlogIcon Zedd0202 안녕하세요~ 댓글로 물어보기 곤란하신 것들인가요? 다른 사람들도 볼 수 있게 물어봐주시면 감사할 것 같은데 그게 안되시면 메일로 보내주셔도 괜찮습니다. 다만 제가 이해할 수 있도록 정확하게 물어봐주세요! 댓글달아주신 분은 현재 만들려는 기능에 대한 이해가 충분하시지만 저는 처음보는것이기 때문에 최대한 자세히 설명해주셔야 합니다. 질문을 하실때에는
    Q : 이 기능을 구현하고 싶은데 어떻게 해요? 보다는
    Q : 이러이러한 기능을 구현하기 위해 이러이러한 작업을 했는데 어디에서 막힌다..로 질문해주세요.

    또한, 메일 보내주시기 전에 애플문서/구글링도 충분히 하셨는지도 체크해주세요~ 저보다 문서/구글이 훨씬 더 도움이 되기 때문입니다..
    2020.03.31 18:34 신고
  • 프로필사진 호빵맨 아 ㅠㅠ 저도 원래 댓글로 물어보고 싶었는데 설명을 위해 이미지도 몇 장 첨부해야되고 길이가 댓글로는 감당이 안될 것 같아 이렇게 감히 여쭈어봅니당 ㅠㅠ 혹시 메일주소는 어디서 확인 가능할까요?? 감사합니다~ 2020.03.31 19:15
  • 프로필사진 Favicon of https://zeddios.tistory.com BlogIcon Zedd0202 zedd0202@gmail.com 입니닷 2020.03.31 19:18 신고
  • 프로필사진 호빵맨 감사합니닷! 2020.03.31 19:25
  • 프로필사진 Favicon of https://whiteknight3672.tistory.com BlogIcon Whiteknight 와우 애써 찾고 있는 문제였는데 덕분에 간단하게 해결 완료했습니다..! 2022.04.22 21:06 신고
댓글쓰기 폼
반응형
Total
4,137,813
Today
574
Yesterday
2,828