Skip to content

Commit a7026c0

Browse files
authored
Merge pull request #103 from michaelhenry/bugfixes/fix-memory-leaks
fixed memory leaks #102
2 parents 8c8a25f + 9cb5a74 commit a7026c0

File tree

6 files changed

+18
-24
lines changed

6 files changed

+18
-24
lines changed

Example/Demo/WithURLsViewController.swift

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,12 @@ extension WithURLsViewController:UICollectionViewDataSource {
9595
initialIndex: indexPath.item,
9696
options: [
9797
.theme(.dark),
98-
.rightNavItemTitle("Info", delegate: self)
98+
.rightNavItemTitle("Info", onTap: { i in
99+
print("TAPPED", i)
100+
})
99101
],
100102
from: self)
101103

102104
return cell
103105
}
104106
}
105-
106-
extension WithURLsViewController:RightNavItemDelegate {
107-
func imageViewer(_ imageViewer: ImageCarouselViewController, didTapRightNavItem index: Int) {
108-
print("TAPPED", index)
109-
}
110-
}

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ You can check this file [ImageViewerOption.swift](https://github.com/michaelhenr
9090
public enum ImageViewerOption {
9191
case theme(ImageViewerTheme)
9292
case closeIcon(UIImage)
93-
case rightNavItemTitle(String, delegate: RightNavItemDelegate?)
94-
case rightNavItemIcon(UIImage, delegate: RightNavItemDelegate?)
93+
case rightNavItemTitle(String, onTap: ((Int) -> Void)?)
94+
case rightNavItemIcon(UIImage, onTap: ((Int) -> Void)?)
9595
}
9696
```
9797

Sources/ImageCarouselViewController.swift

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@ public protocol ImageDataSource:class {
88
public class ImageCarouselViewController:UIPageViewController {
99

1010
weak var imageDatasource:ImageDataSource?
11+
weak var sourceView:UIImageView!
12+
1113
var initialIndex = 0
12-
var sourceView:UIImageView!
14+
1315
var theme:ImageViewerTheme = .light {
1416
didSet {
1517
navItem.leftBarButtonItem?.tintColor = theme.tintColor
@@ -19,7 +21,7 @@ public class ImageCarouselViewController:UIPageViewController {
1921

2022
var options:[ImageViewerOption] = []
2123

22-
weak var rightNavItemDelegate:RightNavItemDelegate?
24+
private var onRightNavBarTapped:((Int) -> Void)?
2325

2426
private(set) lazy var navBar:UINavigationBar = {
2527
let _navBar = UINavigationBar(frame: .zero)
@@ -91,20 +93,20 @@ public class ImageCarouselViewController:UIPageViewController {
9193
self.theme = theme
9294
case .closeIcon(let icon):
9395
navItem.leftBarButtonItem?.image = icon
94-
case .rightNavItemTitle(let title, let delegate):
96+
case .rightNavItemTitle(let title, let onTap):
9597
navItem.rightBarButtonItem = UIBarButtonItem(
9698
title: title,
9799
style: .plain,
98100
target: self,
99101
action: #selector(diTapRightNavBarItem(_:)))
100-
rightNavItemDelegate = delegate
101-
case .rightNavItemIcon(let icon, let delegate):
102+
onRightNavBarTapped = onTap
103+
case .rightNavItemIcon(let icon, let onTap):
102104
navItem.rightBarButtonItem = UIBarButtonItem(
103105
image: icon,
104106
style: .plain,
105107
target: self,
106108
action: #selector(diTapRightNavBarItem(_:)))
107-
rightNavItemDelegate = delegate
109+
onRightNavBarTapped = onTap
108110
}
109111
}
110112
}
@@ -155,10 +157,10 @@ public class ImageCarouselViewController:UIPageViewController {
155157

156158
@objc
157159
func diTapRightNavBarItem(_ sender:UIBarButtonItem) {
158-
guard let _delegate = rightNavItemDelegate,
160+
guard let onTap = onRightNavBarTapped,
159161
let _firstVC = viewControllers?.first as? ImageViewerController
160162
else { return }
161-
_delegate.imageViewer(self, didTapRightNavItem: _firstVC.index)
163+
onTap(_firstVC.index)
162164
}
163165

164166
override public var preferredStatusBarStyle: UIStatusBarStyle {

Sources/ImageViewerOption.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ public enum ImageViewerOption {
44

55
case theme(ImageViewerTheme)
66
case closeIcon(UIImage)
7-
case rightNavItemTitle(String, delegate: RightNavItemDelegate?)
8-
case rightNavItemIcon(UIImage, delegate: RightNavItemDelegate?)
7+
case rightNavItemTitle(String, onTap: ((Int) -> Void)?)
8+
case rightNavItemIcon(UIImage, onTap: ((Int) -> Void)?)
99
}

Sources/RightNavItemDelegate.swift

Lines changed: 0 additions & 4 deletions
This file was deleted.

Sources/UIImageView_Extensions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ extension UIImageView {
44

55
// Data holder tap recognizer
66
private class TapWithDataRecognizer:UITapGestureRecognizer {
7-
var from:UIViewController?
7+
weak var from:UIViewController?
88
var imageDatasource:ImageDataSource?
99
var initialIndex:Int = 0
1010
var options:[ImageViewerOption] = []

0 commit comments

Comments
 (0)