반응형
이미지 선택 체크후 버튼 클릭하여 모달방식으로 다른화면 띄우기 및 데이터 전달
iOS 13 이상 Sheet,
iOS 14 이상 fullScreenCover
struct ContentView: View {
@State private var isImageTapped = false
@State private var isShowingModal = false
@State private var data = ""
var body: some View {
VStack {
if isImageTapped {
Image(systemName: "heart")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 200, height: 200)
.onTapGesture {
isImageTapped.toggle()
}
} else {
Image(systemName: "heart.fill")
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 200, height: 200)
.onTapGesture {
isImageTapped.toggle()
}
}
Button(action: {
isShowingModal = isImageTapped
data = "데이터"
}) {
Text("출력하기")
.padding()
.foregroundColor(.white)
.background(isImageTapped ? Color.red : Color.blue) // 조건에 따라 색상 변경
.cornerRadius(10)
}
.padding()
//.sheet(isPresented: $isShowingModal) {
.fullScreenCover(isPresented: $isShowingModal) {
ModalView(isPresented: $isShowingModal, data: $data)
}
}
}
}
struct ModalView: View {
@Binding var isPresented: Bool
@Binding var data: String
var body: some View {
VStack {
Text("전달한 : \(data)")
Button("닫기") {
isPresented = false
}
}
.padding()
}
}
반응형
'개발 > SWIFT 아이폰' 카테고리의 다른 글
SwiftUI 카카오 내비 호출 및 경로 안내 (0) | 2023.07.18 |
---|---|
SwiftUI Info.plist 사용하기 (0) | 2023.07.18 |
SwiftUI 이미지 클릭시 다른 이미지로 변경 (0) | 2023.07.17 |
SwiftUI 라디오 버튼 생성 및 선택 체크 (0) | 2023.07.17 |
SwiftUI TextField 특수문자 입력 체크 (0) | 2023.07.17 |