【SwiftUI】 커스텀 다이얼로그의 표시와 관리
【SwiftUI】 Manage Custom Dialogs
Goal
배경
SwiftUI에서는 Alert을 사용하여 표준 경고를 볼 수 있습니다.
그러나
UIKit
를 사용하여 개발했을 때와 같이 자신의 View를 대화 상자로 표시하고 싶을 수 있습니다.또한 한 화면에 여러 패턴의 대화 상자를 표시할 수도 있습니다.
이러한 요구 사항을 충족하는 것을 소개합니다.
하지만
이번에 작성하는 것은 다음과 같습니다.
전체 코드는 마지막에 있으므로 참고하십시오.

콘텐츠 패턴
먼저 사용자 정의 대화 상자 보기를 만듭니다.
(나중에 다이얼로그의 배경을 투과하는 처리를 공통으로 넣기 때문에, 그 부분은 불필요합니다)
View
를 계승한 파트입니다.
그리고 이것들을 정리한
Enum
를 작성합니다.이렇게 하면 앱 내에서 커스텀 대화상자를 사용하는 경우를 목록에서 볼 수 있으며, 특정 경우에
View
를 교체하는 것도 쉽습니다.
(
case
의 명명이 contentDetail01
와 같이 되어 있습니다만, 실제로는 보다 상세한 명명이 좋다고 생각합니다. 단순화를 위해서 그렇게 하고 있습니다.)Manage Dialog Presentation
그런 다음 대화 상자의 표시를 제어하는 클래스를 만듭니다.
을 담당합니다.

대화 상자 표시
View
에서 show
메서드를 사용하여 모든 내용을 표시합니다.Custom Dialog Modifier
사용자 정의 대화 상자를
ViewModifier
를 통해 표시합니다.이것은 이 문서: Custom View Dialog in SwiftUI | Swift UI recipes 를 참고로 하고 있습니다.
ViewModifiew
에서 원래 콘텐츠 위에 사용자 정의 대화 상자를 표시합니다.라는 것이 주요한 점입니다.

Set Up
이상으로 요소가 갖추어졌습니다.
View
에서 대화 상자를 표시해 봅시다.
View
에서는 DialogPresentation
를 유지합니다. dialogPresentataion.show(
content: .contentDetail01(isPresented: $dialogPresentataion.isPresented))
와 같이 대화 상자를 표시합니다.
다이얼로그측에서 닫는 버튼을 눌렀을 때에 플래그를 갱신하므로,
isPresented
를 건네주고 있습니다.Summary
다이얼로그 표시의 책무를 가지는 관리 클래스를 작성하는 것으로, 다이얼로그를 표시할 때의 처리를 은폐해, 또 복수의 표시 패턴에 대응할 수 있었습니다.
보다 좋은 방법, 문제점등 있으면 부담없이 코멘트 받을 수 있으면 다행입니다.
전체 코드는 여기
References
Reference
이 문제에 관하여(【SwiftUI】 커스텀 다이얼로그의 표시와 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yyokii/items/ec984833c4d040001fca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)