Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save lucaswkuipers/6a0d6e36b5f7c3bb0281fa6f2c74e68a to your computer and use it in GitHub Desktop.
Save lucaswkuipers/6a0d6e36b5f7c3bb0281fa6f2c74e68a to your computer and use it in GitHub Desktop.
import UIKit
@objc protocol ReusableViewControllerDelegate {
@objc optional func viewDidLoad()
@objc optional 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