SwiftUI - NavigationView, NavigationLink

whale·2022년 7월 1일
0

SwiftUI 기초학습

목록 보기
7/7

화면 이동을 위해 사용하는 네비게이션. 기본 구성 자체는 심플하다.
1. 화면에 표기할 컨텐츠를 NavigationView 로 래핑할것.
2. 다음 뷰로 이동이 필요할땐 NavigationLink 를 사용할것.

아이템은 스크롤 동작을 보기위해 적당히 만들어서 넣어줬다.

이렇게하면 상단에 요상한 영역이 잡힌체 스크롤되는 뷰를 가진 테스트뷰가 완성.

네비게이션뷰의 디스플레이 설정은 3가지.
1. inline
2. lage
3. automatic

설정시 주의할것은 .navigationTitle("title") 이나 .navigationBarTitleDisplayMode(.large) 같은 네비게이션뷰에 속하는 설정의 위치이다.

처음엔 NavigationView{ }.navigation ... 과 같이 작업했는데, 에러는 없지만 동작하지 않았다.

NavigationView{ SomeContent {}.navigation... } 과 같이 뷰 안에서 각종 설정이 들어가야하니 유념할것.

이제 테스트뷰가 나왔으니, 링크를 걸어서 다음뷰로 이동시키는 동작이 가능하다.

navigation 에 우측으로 툴바 버튼을 하나 넣어주고, 클릭액션으로 아무것도 없는 SecondView 를 만들어 넘어가도록 작업해본다.

하나 특이한것은 툴바 아이템이다. 툴바 아이템을 만들때 placement 에 navigationBarTrailing, navigationBarTrailing 을 지정함에 따라 좌 우로 아이템이 배치된다. 그 외에는 별로 특이한게 없다.

.toolbar {
	ToolbarItem(id: "Right", placement: .navigationBarTrailing, showsByDefault: true) {
                    
		NavigationLink {
			SecondView()
		} label: {
			Image(systemName: "heart")
		}
	}
    
}

마무리

기본기능이다보니 심플... 물론 응용은 다른 이야기. 대표적으로 네비게이션 바의 색상을 마음대로 조절하고싶은데, 아쉽게도 그 기능은 iOS16 부터 지원된다고 한다.
즉, 실제로 쓰려면 1년은 더 있어야한다는 이야기.

그렇다고 기본적인 배경색만 쓸수는 없으니 내 입맛대로 색상을 바꾸기위해서는 약간의 트릭이 필요하다.

그 트릭은 다음 포스트에서...

profile
그저 오래된 iOS 개발자.

0개의 댓글