【Swift】모달을 아래로 스와이프로 닫을 수 없게 되었다(iOS15)

3051 단어 SwiftiOS15

무슨 일이야



예로서 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
}



하프모달로 하면 테두리외 탭으로 닫을 수 있다. 풀 모달은 테두리 밖으로 탭 닫을 수 없습니다.
조사하지는 않지만, 닫는(혹은 닫지 않는) 설정도 있을지도 모른다.

일단 공식

끝(´・ω・`)

좋은 웹페이지 즐겨찾기