페이지 이동에 관해 질문이 있습니다 !
339
작성한 질문수 11
안녕하세요 강의 너무 잘 듣고 있습니다 ! 예전에 앱 만들다가 궁금했던 것이 두가지 정도 있어 여쭤보려고 합니다.
- 페이지 페이지 가 연결되는 느낌이 아니라 아예 다른 페이지로 넘어가고 싶은데,
- 그리고 페이지 내 컴포넌트 안에 있는 컴포넌트에서 버튼을 눌렀을 때 Sheet이 올라오게 하고 싶은데
답변 2
0
안녕하세요 oilater 님.
확인이 늦어 이제 답변드리네요 죄송합니다.
페이지 연결 느낌이 아니라 다른 페이지로 넘기는것은 .fullScreenCover 와 .presentationDetents 을 활용해서 sheet 의 크기와 페이지 전환을 NavigationLink 를 사용하지 않고도 구현 할 수 있습니다.
자세한 사항은 링크를 참조해주세요
감사합니다
예제 코드는 다음과 같습니다.
import SwiftUI
struct test1: View {
@State private var showFullScreen = false
var body: some View {
VStack {
Text("Home Page")
.font(.largeTitle)
.padding()
Button(action: {
showFullScreen.toggle()
}) {
Text("Go to Next Page")
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(8)
}
// .fullScreenCover(isPresented: $showFullScreen) {
// NextPageView() // FullScreenColor 와 같이 Sheet}
.sheet(isPresented: $showFullScreen, content: {
NextPageView()
// .presentationDetents([.medium]) // 중간 사이즈 sheet
// .presentationDetents([.fraction(0.7)])
// 스크린 사이즈의 70% 만
.presentationDetents([.fraction(0.3)]) // 스크린 사이즈의 30% 만
})
}
}
}
struct NextPageView: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
VStack {
Text("Next Page")
.font(.largeTitle)
.padding()
Button(action: {
presentationMode.wrappedValue.dismiss()
}) {
Text("Go Back")
.padding()
.background(Color.red)
.foregroundColor(.white)
.cornerRadius(8)
}
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color.green)
.edgesIgnoringSafeArea(.all)
}
}
#Preview {
test1()
}

0
안녕하세요, 인프런 AI 인턴입니다.
oilater님의 SwiftUI와 iOS 17 관련 질문에 대해 답변드리겠습니다.
탭이나 NavigationLink 외에도 페이지 전환을 위한 다른 방법이 있습니다. SwiftUI에서는 Modal 방식이나, 화면 전환을 위한 사용자 정의 애니메이션과 뷰 전환을 사용할 수도 있습니다. NavigationLink 와 hidden을 조합하는 방법도 있지만, PresentationLink 또는 전환 애니메이션을 커스터마이징하여 새로운 화면을 표시하는 방법도 고려할 수 있습니다.
Sheet가 표시되는 문제로, 컴포넌트 내에서 Sheet를 전체 화면으로 표시하고 싶은 경우, Sheet의
presentationDetents속성을 사용하여 크기를 조절할 수 있습니다. 또한,.sheet모디파이어를 사용할 때, 호출되는 뷰의 레벨에 주의해야 합니다. 전체 화면 기준으로 Sheet를 표시하려면, Sheet 모디파이어를 최상위 뷰나 NavigationView에 적용해야 전체 화면으로 나타날 수 있습니다.
두 사항 모두, SwiftUI 라이브러리 및 iOS 버전에 따라 사용 가능한 기능과 구현 방법에 차이가 있을 수 있으니, SwiftUI 및 iOS 개발 문서를 참고하시는 것도 좋습니다. 추가 질문이 있으시면 언제든지 문의해주시기 바랍니다.
소리가 ㅠㅠ
0
53
2
index와 indexSet
0
59
2
NavigationBarItems Deprecated
0
96
3
Xcode version 문제
0
195
2
GalleryView 작성시, @State? @Bidnable? 의 차이점이 뭔지 궁금합니다.
0
303
2
scrollTransition 에서 phase 값을 찍어보고 싶습니다.
0
277
2
갤러리에서 슬라이더 변경시 gridSwitch 가 두번 실행됩니다.
0
307
2
유튜브 영상 플레이시 워닝 이슈 문의
0
518
1
ListBasic 강의 문의 - 딸기 id 오류 및 move 오작동
0
222
1
LazyGrid 강의 문의 - 데이터가 30개 인데 로우가 3줄이면 27개만 노출됨
0
269
1
ScrollView에서 질문 있습니다.
0
286
1
MVVM에서 처음
0
216
1
ExtractView, @Binding 강의에서 .previewLayout(.sizeThatFits) 함수 관련해서 질문드립니다.
0
336
2
iOS 15 버전이후 프리뷰 문제 관련해서 질문드립니다.
0
343
2
VStack으로 프리뷰 생성
0
393
2
MVVM 폴더 안에서 Preview가 작동하지 않습니다.
0
249
1
Preview 질문
0
415
2
LazyGrid 질문 있습니다.
0
337
1
Textfield 입력시 한글 자음 모음 분리 현상이 발생 합니다
1
6531
2
Sheet가 바로 닫히는 문제와 홈 화면 액션 관련 문의
0
288
1
NavigationView를 NavigationStack 으로 변경관련입니다.
1
357
1
Frame 강의에서 다른 결과물이 나와요
0
387
1
Frame에 대한 개념 질문
0
251
1
ShareLink에서 이미지 링크에서 이미지 크기 제한이 있나요?
0
317
2





