prevent unnecessary strong referencing and controller caching
This commit is contained in:
parent
239de4367c
commit
1b3071aa07
|
@ -9,14 +9,16 @@
|
|||
import UIKit
|
||||
|
||||
class ImageViewController: UIViewController {
|
||||
var owner: SelectionViewController!
|
||||
weak var owner: SelectionViewController!
|
||||
var image: String!
|
||||
var animTimer: Timer!
|
||||
|
||||
var imageView: UIImageView!
|
||||
var sourceImage: UIImage!
|
||||
|
||||
lazy var imageFilePath = Bundle.main.path(forResource: image, ofType: nil)!
|
||||
|
||||
lazy var imageRenderer = UIGraphicsImageRenderer(size: sourceImage.size)
|
||||
|
||||
|
||||
override func loadView() {
|
||||
super.loadView()
|
||||
|
@ -52,20 +54,16 @@ class ImageViewController: UIViewController {
|
|||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
guard let sourceImage = UIImage(contentsOfFile: imageFilePath) else { return }
|
||||
sourceImage = UIImage(contentsOfFile: imageFilePath)!
|
||||
|
||||
title = image.replacingOccurrences(of: "-Large.jpg", with: "")
|
||||
|
||||
let renderer = UIGraphicsImageRenderer(size: sourceImage.size)
|
||||
|
||||
let roundedImage = renderer.image { ctx in
|
||||
imageView.image = imageRenderer.image { ctx in
|
||||
ctx.cgContext.addEllipse(in: CGRect(origin: CGPoint.zero, size: sourceImage.size))
|
||||
ctx.cgContext.closePath()
|
||||
|
||||
sourceImage.draw(at: CGPoint.zero)
|
||||
}
|
||||
|
||||
imageView.image = roundedImage
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
|
@ -77,6 +75,13 @@ class ImageViewController: UIViewController {
|
|||
self.imageView.alpha = 1
|
||||
}
|
||||
}
|
||||
|
||||
override func viewWillDisappear(_ animated: Bool) {
|
||||
super.viewWillDisappear(animated)
|
||||
|
||||
// make the animTimer release its strong reference on this view controller
|
||||
animTimer.invalidate()
|
||||
}
|
||||
|
||||
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
|
||||
let defaults = UserDefaults.standard
|
||||
|
|
|
@ -13,7 +13,6 @@ let cellRowHeight = 90
|
|||
|
||||
class SelectionViewController: UITableViewController {
|
||||
var items = [String]() // this is the array that will store the filenames to load
|
||||
var viewControllers = [UIViewController]() // create a cache of the detail view controllers for faster loading
|
||||
var dirty = false
|
||||
|
||||
lazy var thumbnailRect = CGRect(origin: CGPoint.zero, size: CGSize(width: cellRowHeight, height: cellRowHeight))
|
||||
|
@ -106,7 +105,6 @@ class SelectionViewController: UITableViewController {
|
|||
dirty = false
|
||||
|
||||
// add to our view controller cache and show
|
||||
viewControllers.append(vc)
|
||||
navigationController!.pushViewController(vc, animated: true)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue