Skip to content

Instantly share code, notes, and snippets.

@Rashidium
Last active January 26, 2021 14:48
Show Gist options
  • Select an option

  • Save Rashidium/465a8a4e3b59c4de222885ad59282f56 to your computer and use it in GitHub Desktop.

Select an option

Save Rashidium/465a8a4e3b59c4de222885ad59282f56 to your computer and use it in GitHub Desktop.
Clean View Controller
import UIKit
protocol FeedDisplayLogic: AnyObject {
}
final class FeedViewController: UIViewController {
var interactor: FeedBusinessLogic?
var router: (FeedRoutingLogic & FeedDataPassing)?
// MARK: Object lifecycle
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
setup()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
// MARK: Setup
private func setup() {
let viewController = self
let interactor = FeedInteractor()
let presenter = FeedPresenter()
let router = FeedRouter()
viewController.interactor = interactor
viewController.router = router
interactor.presenter = presenter
presenter.viewController = viewController
router.viewController = viewController
router.dataStore = interactor
}
}
extension FeedViewController: FeedDisplayLogic {
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment