inflearn logo
강의

Course

Instructor

Part 1: Learning iOS for Real Beginners (SwiftUI, SwiftData, 2024)

Managing Todo Data with a Class

NavigationLink 질문

Resolved

149

o2k

3 asked

1

NavigationLink를 통해서 화면 전환을 하게 되면 기본적으로
> Back 버튼이 생성이 됩니다.
혹시 이걸 제가 원하는 형태로 커스텀 할 수 있을까요?

ios swift swiftui swift5.5

Answer 1

0

nightdaycoding

안녕하세요 o2k님!

먼저 강의 수강해주셔서 감사합니다.

 

네 커스텀 백버튼으로 뒤로가기 기능 구현이 가능합니다!

아래 코드를 참조 하면 되는데요.

 

간단하게 설명해드리면

  1. ContentView = 현재 뷰, DetailView = 다음 뷰

  2. Environment(\.dismiss) 다음 뷰를 업앨 수 있는 기능을 갖고 있는 함수

    1. 이걸 Environment라는 환경에서 가져와서 뷰를 닫을 수 있습니다.

  3. 커스텀 버튼을 네비게이션 반에 넣고 싶으면 .navigationBarBackButtonHidden으로 원래 내비게이션 바를 삭제하고 .toolBar로 새로운 커스텀 네비게이션 아이템들을 생성해주면 됩니다.

  4. 네비바가 아니라 하단 영역에 만들고 싶다면 Button을 만들어서 dismiss()함수를 실행해주면 됩니다.

같은 내용이 Part2에서 설명이 되는데요. 혹시 관심있으시다면 들어보시는 것을 추천드릴게요!ㅎㅎ

 

또 궁금한 사항 있으시면 질문 남겨주세요! 감사합니다.

import SwiftUI

struct ContentView: View {
    var body: some View {
        NavigationView {
            NavigationLink("Go to Details", destination: DetailView())
        }
    }
}

struct DetailView: View {
    @Environment(\.dismiss) private var dismiss

    var body: some View {
        VStack {
            Button("Custom 뒤로가기2") {
                dismiss()
            }
        }
        .navigationBarBackButtonHidden(true)  // 기본 백 버튼 숨기기
        .toolbar {
            ToolbarItem(placement: .topBarLeading) {
                Button {
                    dismiss()
                } label: {
                    HStack{
                        Image(systemName: "chevron.backward")
                        Text("Custom 뒤로가기1")
                    }
                }
            }
        }
    }
}

확인 버튼 만들 때 폰트 색상 화이트 주는 위치 문의드려요.

1

65

2

Button(action: label:)이 강의와 달라요!

1

61

2

HStack과 VStack에서 alignment와 spacing 방향이 이해가 잘 안갑니다.

1

69

2

modifiers 창이 안보여요.

1

97

2

showAlert 변수 mvi 패턴에서의 사용법

1

54

2

swift vs swiftUI

1

64

1

끝말잇기 로직 구현 중 ios 16 (iphone 16) 시뮬레이터 영어 입력 불가

1

81

1

@Binding된 객체는 자동으로 저장이 되나요?

1

96

2

섹션5. Class로 Todo 데이터 관리하기 부분에서 질문 있습니다.

1

83

2

JSON_Decodable.playground에서 print문이 안찍히는 문제

0

120

2

List를 넣으니 위치가 제대로 조정이 되던데 그럼 Spacer는 따로 넣을 필요가 없는걸까요?

1

105

1

콘솔창에 값이 안찍히고 있습니다.

1

142

2

todo 앱에서 미리 적어놨던 요소들은 왜 안나오나요?

1

131

2

Swift 6 업데이트 이후 Todo 예제 실행 오류

1

188

2

ToDo 앱 @Observable 기능(?) 질문입니다

0

209

2

Todo 앱 @Observable 질문입니다

2

191

2

VStack, HStack으로 뷰 구성하기 강의 padding 질문입니다

1

222

1

@State 특성(?) 질문입니다

1

161

2

6-7) 이미지 사이즈 지정 위치 질문드립니다.

1

170

1

강의 자료를 모아보는 프로그램을 제작해보려고 합니다!

0

180

1

서적 추천 부탁드립니다!

2

192

1

질문합니다. 섹션 4 - 10 [투두 삭제기능 구현하기(onDelete)]

1

217

2

섹션4-4 'NavigationStack' 오류가 납니다

1

228

1

강의를 들으면서 앱을 만들어보고 있습니다

1

262

3