【Swift】모달을 아래로 스와이프로 닫을 수 없게 되었다(iOS15)
무슨 일이야
예로서 WebViewController를 모달로 표시하고 있다.
――그리고, 이런 느낌.
닫을 수 없습니다. 귀찮다.
왜
iOS15부터 하프모달이 라이브러리 없이 구현할 수 있게 되었기 때문이라고 생각된다.
결론부터 말하면, 닫기 위한 핸들(손잡이)을 붙이는 기술을 쓰지 않으면 닫을 수 없다.
if let sheet = webViewController.sheetPresentationController {
// コレ
sheet.prefersGrabberVisible = true
}
손잡이가 나와 닫히게 되었다.
iOS15만의 대응이기 때문에, 2021년 10월 현재 실제로 쓰여지는 코드는 이런 느낌이 될 것이다.
if #available(iOS 15.0, *) {
if let sheet = webViewController.sheetPresentationController {
sheet.prefersGrabberVisible = true
}
} else {
// Fallback on earlier versions
}
그건 그렇고
하프 모달로 만드는 것은 단지 이것뿐.
if #available(iOS 15.0, *) {
if let sheet = webViewController.sheetPresentationController {
sheet.detents = [.medium()]
}
} else {
// Fallback on earlier versions
}
하프모달로 하면 테두리외 탭으로 닫을 수 있다. 풀 모달은 테두리 밖으로 탭 닫을 수 없습니다.
조사하지는 않지만, 닫는(혹은 닫지 않는) 설정도 있을지도 모른다.
일단 공식
끝(´・ω・`)
Reference
이 문제에 관하여(【Swift】모달을 아래로 스와이프로 닫을 수 없게 되었다(iOS15)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/antk/items/7d618f5a4598e33db3e3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
if let sheet = webViewController.sheetPresentationController {
// コレ
sheet.prefersGrabberVisible = true
}
if #available(iOS 15.0, *) {
if let sheet = webViewController.sheetPresentationController {
sheet.prefersGrabberVisible = true
}
} else {
// Fallback on earlier versions
}
if #available(iOS 15.0, *) {
if let sheet = webViewController.sheetPresentationController {
sheet.detents = [.medium()]
}
} else {
// Fallback on earlier versions
}
Reference
이 문제에 관하여(【Swift】모달을 아래로 스와이프로 닫을 수 없게 되었다(iOS15)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/antk/items/7d618f5a4598e33db3e3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)