Popup

사용자의 즉각적인 주의와 응답이 필요한 상황에서 사용하는 모달 요소입니다. 사용자의 현재 작업을 중단 시키고 팝업 내용에 집중하도록 하며, 필수적인 결정이나 확인이 필요한 경우에 사용합니다.

@MainActor struct Popup

Overview

배경을 어둡게 처리하고 화면 중앙에 콘텐츠를 표시하는 형태의 모달입니다. 내비게이션 바와 액션 영역을 설정할 수 있으며, 애니메이션과 함께 표시됩니다.

@State private var showPopup = false

Button("팝업 열기") {
    showPopup = true
}
.fullScreenCover(isPresented: $showPopup) {
    Popup {
        VStack(spacing: 16) {
            Text("알림")
                .font(.headline)
            Text("중요한 메시지입니다.")

            Button("확인") {
                showPopup = false
            }
        }
        .padding()
    }
}
.transaction { transaction in
    transaction.disablesAnimations = true
}

모디파이어를 사용하면 더 간편하게 구현할 수 있으며, 애니메이션이 자동으로 처리됩니다:

YourView()
    .popup(
        isPresented: $showPopup
    ) {
        Text("팝업 내용")
    }

Topics

Initializers

init<V>(() -> V)

팝업 모달을 초기화합니다.

  • Parameters
    ParameterDescription
    content모달 내에 표시할 콘텐츠를 반환하는 클로저

Instance Properties

var body: some View

뷰의 내용과 동작을 정의합니다.

Instance Methods

func ignoresEdgeInsets(Bool) -> Popup

컨텐츠의 기본 여백을 무시할지 설정합니다.

  • Parameters

    ParameterDescription
    ignoresEdgeInsets여백 무시 여부
  • Return Value

    수정된 팝업 모달 뷰

func modalActionArea(ActionArea.Model?) -> Popup

팝업 모달 하단에 액션 영역을 설정합니다.

  • Parameters

    ParameterDescription
    actionAreaModel액션 영역 모델
  • Return Value

    수정된 팝업 모달 뷰

func modalNavigation((() -> Montage.ModalNavigation)?) -> Popup

팝업 모달 상단에 내비게이션 바를 설정합니다.

  • Parameters

    ParameterDescription
    navigation내비게이션 바를 반환하는 클로저
  • Return Value

    수정된 팝업 모달 뷰

func resize(Resize) -> Popup

팝업 모달의 크기를 설정합니다.

  • Parameters

    ParameterDescription
    resize팝업 모달의 크기 설정
  • Return Value

    수정된 팝업 모달 뷰

Enumerations

enum Resize

팝업의 크기를 정의하는 열거형입니다.

Enumeration Cases

case fixed(CGFloat)

지정한 높이로 고정됩니다.

  • Parameters
    ParameterDescription
    height높이
case hug

컨텐츠 크기에 맞게 자동 조절됩니다.

Associated Extensions

extension View
func popup<V>(isPresented: Binding<Bool>, resize: Popup.Resize, ignoresEdgeInsets: Bool, actionAreaModel: ActionArea.Model?, () -> V, navigation: (() -> ModalNavigation)?) -> some View

팝업 모달을 표시합니다.

  • Parameters

    ParameterDescription
    isPresented모달 표시 여부를 제어하는 바인딩
    resize모달 크기 조절 방식, 생략하면 기본값으로 .hug 적용
    ignoresEdgeInsets모달 내용이 Edge 인셋을 무시할지 여부, 생략하면 기본값으로 false 적용
    actionAreaModel모달 하단에 표시할 액션 영역 모델, 생략하면 기본값으로 nil 적용
    content모달에 표시할 콘텐츠 클로저
    navigation모달 상단에 표시할 네비게이션 클로저, 생략하면 기본값으로 nil 적용
  • Return Value

    팝업 모달이 적용된 뷰

  • Discussion

    화면 중앙에 표시되는 팝업 형태의 모달을 표시합니다.

Relationships

Conforms To

Swift.Sendable

SwiftUICore.View

© 2026 Wanted Lab, Inc.