[SwiftUI] 화면 이동

RudinP·약 22시간 전
0

Study

목록 보기
286/292

네비게이션뷰에서 화면을 이동하는 방법을 알아보자.

Sheet

1. 화면 이동 여부를 판단하는 Bool타입 State variable 추가

@State private var showComposer: Bool = false

2. 눌렀을 때 화면이 이동되는 뷰에서 State variable true로 변경

var body: some View {
        NavigationView {
            List(store.list) { memo in
                MemoCell(memo: memo)
            }
            .navigationTitle("내 메모")
            .listStyle(.plain)
            .toolbar {
                Button{
                    showComposer = true
                } label: {
                    Image(systemName: "plus")
                }
            }
        }
    }

3. .sheet modifier에 해당 State variable을 바인딩한 후 이동 목적지인 뷰 리턴

var body: some View {
        NavigationView {
            ...
            }
            .sheet(isPresented: $showComposer) {
                ComposeView()
            }
        }
    }

Push

1. NavigationLink를 사용한다.

var body: some View {
        NavigationLink {
            <#code#>
        } label: {
            <#code#>
        }
        ...

2. 클로저에서 이동할 뷰를 리턴한다.

NavigationLink {
                    DetailView(memo: memo)
                } label: {
                 
                }
...

3. 만약 셀을 선택했을 때 이동하고자 한다면 label 클로저에서 Cell 뷰를 리턴하면 된다.

var body: some View {
        NavigationView {
            List(store.list) { memo in
                NavigationLink {
                    DetailView(memo: memo)
                } label: {
                    MemoCell(memo: memo)
                }
            }
 ...
profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글