일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- react hook
- 상단 빈공간 제거
- 페이지이동함수
- 블로그업로드확인
- react상태관리라이브러리
- @observedobject 프로퍼티 래퍼
- BFS
- navigationBar 숨기기
- LazyHGrid
- react fsd
- 리렌더링최적화
- 반응형 css
- @environmentobject 프로퍼티 래퍼
- zustand
- GridItem
- LazyVGrid
- 비동기함수
- zustand란
- featured-sliced-design
- 동기 함수 내에서 비동기 함수 호출
- 리액트최적화
- 페이지전환
- @published 프로퍼티 래퍼
- 세로모드끄기
- 가로모드끄기
- SwiftUI Font
- 컴퓨터네트워크
- CSS
- C++
- react-router-dom
- Today
- Total
leebaek
[SwiftUI] NavigationView & NavigationLink (기본) 본문
■ NavigationView : 지금 버전에서 사용되지 않음
: 탐색 계층 구조에서 표시 가능한 경로를 나타내는 뷰 스택을 표시하기 위한 뷰임
- 현재는 Stack을 사용
■ NavigationStack
: 탐색 계층 구조에서 표시 가능한 경로를 나타내는 뷰 스택을 표시하기 위한 뷰임 ( View와는 차이가 있음 )
- NavigationView 안에 하위 뷰를 넣어서 사용함
- 사용자는 NavigationLink를 선택하여 대상 보기로 이동함
struct NavigationView<Content> where Content : View
> NavigationLink를 여러개 사용하기 위해선 ( > : 하위 )
1. List
2.VStack / HStack
3.NavigationStack
1. NavigationView > List > NavigationLink
NavigationView {
List {
NavigationLink{...}
NavigationLink{...}
.navigationTitle("리스트사용")
}
}
2. NavigationStack > VStack or HStack > NavigationLink
NavigationView {
VStack {
NavigationLink{...}
NavigationLink{...}
.navigationTitle("스택사용")
}
}
NavigationView {
HStack {
NavigationLink{...}
NavigationLink{...}
.navigationTitle("스택사용")
}
}
□ NavigationStack & NavigationView 비교
-View의 경우 : 새로운 뷰가 현재 뷰 아래에 표시됨
-Stack의 경우 : 새로운 뷰가 뷰 위를 완전히 덮음
■ NavigationLink
: 원하는 화면으로 이동하거나, 전 화면으로 되돌아가는 등 다양한 화면 전환 기능이 있음
- NavigationStack(View)의 하위 뷰로 쓰임
- NavigationStack(View) 영역에 전환된 화면이 보임
struct NavigationLink<Label, Destination> where Label : View, Destination : View
> Label : View
- NavigationView에 나타낼 텍스트나 모양
> Destination : View
- 클릭 시 이동할 뷰
- 다른 SwiftUIView 불러오기 가능
ex )
SwiftUIView 이름이 mypage인 경우,
destination 작성 부분에 mypage() 작성해주면 뷰가 표시됨
> Label, Destination 둘 다 View 프로토콜 : 인터페이스의 일부를 나타내고 보기를 구성하는데 사용하는 수정자를 제공하는 유형
□ NavigationLink 사용방법
NavigationLink(destination: () -> View, label: () -> View)
예제 1 )
() 안에 destination {} 안에 label
NavigationLink(destination: Text("목적지")) {
Text("클릭") // or Mypage()
}
예제 2 )
() 안에 label {} 안에 destination
NavigationLink("클릭") {
Text("목적지") // or Mypage()
}
예제 3 )
{1} 안에 destination, {1} 뒤에 label : {2} 쓴 후 {2}에 label
NavigationLink{
Text("목적지") // or Mypage()
} label: {
Text("클릭")
}
'개발 > Swift' 카테고리의 다른 글
[Swift] 데이터 타입 | 튜플 (0) | 2023.12.27 |
---|---|
[Swift] 데이터 타입 | 스위프트 변수, 상수, 타입애너테이션 (1) | 2023.12.27 |
[SwiftUI] ScrollViewReader & ScrollViewProxy | 스크롤뷰 리더, 프록시 (0) | 2023.11.08 |
[SwiftUI] ScrollTo (0) | 2023.11.08 |
[SwiftUI] ScrollView | 스크롤뷰 (0) | 2023.11.08 |