Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lucaswkuipers/ca1b9a594dbe820c2263ec76d7f299ff to your computer and use it in GitHub Desktop.
Save lucaswkuipers/ca1b9a594dbe820c2263ec76d7f299ff to your computer and use it in GitHub Desktop.
import UIKit
protocol ReusableViewControllerDelegate {
func viewDidLoad()
func viewWillAppear(_ animated: Bool)
}
final class ReusableViewController: UIViewController {
var delegate: ReusableViewControllerDelegate?
private let contentView: UIView
init(with view: UIView) {
self.contentView = view
super.init(nibName: nil, bundle: nil)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func loadView() {
super.loadView()
self.view = contentView
}
override func viewDidLoad() {
super.viewDidLoad()
delegate?.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
delegate?.viewWillAppear(animated)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment