[SwiftUI] 네비게이션뷰

RudinP·약 22시간 전
0

Study

목록 보기
285/292

  • 뷰를 네비게이션뷰에 임베드하려면 NavigationView 스택에 넣으면 된다.
  1. 해당 뷰 embed in Group

  2. Group을 NavigationView로 수정

네비게이션뷰 modifier

  • 주의할 점: NavigationView의 브라켓 바깥쪽이 아닌 안쪽에 modifier을 추가해야 함.
  • .navigationTitle(String): 네비게이션뷰의 타이틀 수정
  • .navigationBarTitleDisplayMode(.inline): 네비게이션바의 타이틀의 디스플레이 형식을 인라인 형식으로 설정
var body: some View {
        NavigationView {
            VStack {
                //2-way binding
                TextEditor(text: $content)
                    .padding()
            }
            .navigationTitle("새 메모")
            .navigationBarTitleDisplayMode(.inline)
        }
}

네비게이션뷰에 버튼 추가하기

  • .toolbar modifier 사용
  • ToolbarItemGroup 안에 Button 뷰 추가
var body: some View {
        NavigationView {
            VStack {
                //2-way binding
                TextEditor(text: $content)
                    .padding()
            }
            .navigationTitle("새 메모")
            .navigationBarTitleDisplayMode(.inline)
            .toolbar {
                ToolbarItemGroup(placement: .navigationBarLeading) {
                    Button {
                        dismiss()
                    } label: {
                        Text("취소")
                    }
                    
                }
                
                ToolbarItemGroup(placement: .navigationBarTrailing) {
                    Button {
                        store.insert(memo: content)
                    } label: {
                        Text("저장")
                    }
                }
            }
        }
    }

변경

Xcode14 이상에서는 NavigationView 자체를 NavigationStack으로 변경하여 사용하는 것이 좋다. 그냥 NavigationView를 쓴다면, 이동한 뷰의 toolBar에서 이미지가 표시가 안되는 현상이 발생할 수 있다.

profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글