【SwiftUI】 커스텀 다이얼로그의 표시와 관리
【SwiftUI】 Manage Custom Dialogs
Goal
배경
SwiftUI에서는 Alert을 사용하여 표준 경고를 볼 수 있습니다.
그러나
UIKit
를 사용하여 개발했을 때와 같이 자신의 View를 대화 상자로 표시하고 싶을 수 있습니다.또한 한 화면에 여러 패턴의 대화 상자를 표시할 수도 있습니다.
이러한 요구 사항을 충족하는 것을 소개합니다.
하지만
이번에 작성하는 것은 다음과 같습니다.
전체 코드는 마지막에 있으므로 참고하십시오.
![](https://s1.md5.ltd/image/338abf86d94f95d7426f9d0911ea5388.gif)
콘텐츠 패턴
먼저 사용자 정의 대화 상자 보기를 만듭니다.
(나중에 다이얼로그의 배경을 투과하는 처리를 공통으로 넣기 때문에, 그 부분은 불필요합니다)
View
를 계승한 파트입니다.![](https://s1.md5.ltd/image/780927b3084099930aee8ec785ced1fc.png)
그리고 이것들을 정리한
Enum
를 작성합니다.이렇게 하면 앱 내에서 커스텀 대화상자를 사용하는 경우를 목록에서 볼 수 있으며, 특정 경우에
View
를 교체하는 것도 쉽습니다.![](https://s1.md5.ltd/image/c862037fcdeaae09712ffbabc0d469d2.png)
(
case
의 명명이 contentDetail01
와 같이 되어 있습니다만, 실제로는 보다 상세한 명명이 좋다고 생각합니다. 단순화를 위해서 그렇게 하고 있습니다.)Manage Dialog Presentation
그런 다음 대화 상자의 표시를 제어하는 클래스를 만듭니다.
을 담당합니다.
![](https://s1.md5.ltd/image/d6eea7012c83e32323a5de27eda9d66e.png)
대화 상자 표시
View
에서 show
메서드를 사용하여 모든 내용을 표시합니다.Custom Dialog Modifier
사용자 정의 대화 상자를
ViewModifier
를 통해 표시합니다.이것은 이 문서: Custom View Dialog in SwiftUI | Swift UI recipes 를 참고로 하고 있습니다.
ViewModifiew
에서 원래 콘텐츠 위에 사용자 정의 대화 상자를 표시합니다.라는 것이 주요한 점입니다.
![](https://s1.md5.ltd/image/421adc583f2d20b145203c1b1d34f8ad.png)
Set Up
이상으로 요소가 갖추어졌습니다.
View
에서 대화 상자를 표시해 봅시다.![](https://s1.md5.ltd/image/4cdcc6e92bb6186e9c6cc12ed139f107.png)
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.)