Fix Leaks
This commit is contained in:
@@ -128,8 +128,8 @@ class TabBarView: UIView
|
||||
{
|
||||
static let preferredHeight: CGFloat = 30.0
|
||||
|
||||
public var delegate: TabBarViewDelegate?
|
||||
public var dataSource: TabBarViewDataSource?
|
||||
public weak var delegate: TabBarViewDelegate?
|
||||
public weak var dataSource: TabBarViewDataSource?
|
||||
|
||||
private var tabViews: [TabView] = []
|
||||
private var activeTabIndex: Int = 0
|
||||
@@ -192,9 +192,10 @@ class TabBarView: UIView
|
||||
|
||||
UIView.animate(withDuration: 0.22, delay: 0.0, usingSpringWithDamping: 1.0, initialSpringVelocity: 1.0, options: [], animations: { [unowned self] in
|
||||
layoutSubviews()
|
||||
}, completion: { [unowned self] finished in
|
||||
}, completion: { [weak self] finished in
|
||||
guard let self = self else { return }
|
||||
tabViewsRemoved.forEach { $0.removeFromSuperview() }
|
||||
tabViews.removeAll { tabViewsRemoved.contains($0) }
|
||||
self.tabViews.removeAll { tabViewsRemoved.contains($0) }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -232,14 +233,14 @@ class TabBarView: UIView
|
||||
let tabView = TabView()
|
||||
tabView.identifier = identifier
|
||||
|
||||
tabView.addAction(UIAction(handler: { [unowned self, tabView] _ in
|
||||
tabView.addAction(UIAction(handler: { [unowned self, unowned tabView] _ in
|
||||
guard let delegate = self.delegate else { return }
|
||||
guard let tabIndex = self.tabViews.firstIndex(of: tabView) else { return }
|
||||
|
||||
delegate.tabBarView(self, didClickToActivateTabAtIndex: tabIndex)
|
||||
}), for: .touchUpInside)
|
||||
|
||||
tabView.closeButton.addAction(UIAction(handler: { [unowned self, tabView] _ in
|
||||
tabView.closeButton.addAction(UIAction(handler: { [unowned self, unowned tabView] _ in
|
||||
guard let delegate = self.delegate else { return }
|
||||
guard let tabIndex = self.tabViews.firstIndex(of: tabView) else { return }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user