Skip to content

Commit 7036928

Browse files
author
Semen Osipov
committed
Add dismiss notification, make class open, default childScrollView to nil
1 parent c2c7ea3 commit 7036928

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

ARBottomSheetViewController/Sources/ARBottomSheetPresentationController.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import SnapKit
1111
protocol ARBottomSheetPresentationControllerDelegate: AnyObject {
1212
var preferredControllerHeight: CGFloat {get}
1313
var interactionScrollView: UIScrollView? {get}
14+
func presentationControllerDidDismiss()
1415
}
1516

1617
class ARBottomSheetPresentationController: UIPresentationController {
@@ -107,6 +108,7 @@ class ARBottomSheetPresentationController: UIPresentationController {
107108
super.dismissalTransitionDidEnd(completed)
108109
if completed {
109110
dimmingView.removeFromSuperview()
111+
customDelegate?.presentationControllerDidDismiss()
110112
}
111113
}
112114

ARBottomSheetViewController/Sources/ARBottomSheetViewController.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,19 @@ import SnapKit
1111
public protocol ARBottomSheetViewControllerDelegate: AnyObject {
1212
var contentHeight: CGFloat {get}
1313
var childScrollView: UIScrollView? {get}
14+
func bottomSheetDidDismiss(_ controller: ARBottomSheetViewController)
1415
}
1516

16-
public class ARBottomSheetViewController: UIViewController {
17+
public extension ARBottomSheetViewControllerDelegate {
18+
var childScrollView: UIScrollView? { nil }
19+
func bottomSheetDidDismiss(_ controller: ARBottomSheetViewController) {}
20+
}
21+
22+
open class ARBottomSheetViewController: UIViewController {
1723

1824
public weak var sheetDelegate: ARBottomSheetViewControllerDelegate?
1925
public let configuration: ARBottomSheetConfiguration
26+
public var onDismiss: (() -> Void)?
2027

2128
// MARK: Views
2229
private let stickView: UIView = {
@@ -51,7 +58,7 @@ public class ARBottomSheetViewController: UIViewController {
5158
commonInit()
5259
}
5360

54-
required init?(coder: NSCoder) {
61+
public required init?(coder: NSCoder) {
5562
self.configuration = ARBottomSheetConfiguration()
5663
super.init(coder: coder)
5764
commonInit()
@@ -116,6 +123,11 @@ extension ARBottomSheetViewController: ARBottomSheetPresentationControllerDelega
116123
return sheetDelegate?.childScrollView
117124
}
118125

126+
func presentationControllerDidDismiss() {
127+
sheetDelegate?.bottomSheetDidDismiss(self)
128+
onDismiss?()
129+
}
130+
119131
var preferredControllerHeight: CGFloat {
120132
var handleArea: CGFloat = 0
121133
if configuration.showsHandle {

0 commit comments

Comments
 (0)