Newer
Older
func toRequests(from: UIViewController)
func toContacts(from: UIViewController)
func toDrawer(_: UIViewController, from: UIViewController)
func toNicknameDrawer(_: UIViewController, from: UIViewController)
func toCountries(from: UIViewController, _: @escaping (Country) -> Void)
var pushPresenter: Presenting = PushPresenter()
var replacePresenter: Presenting = ReplacePresenter()
var fullscreenPresenter: Presenting = FullscreenPresenter()
var contactsFactory: () -> UIViewController
var requestsFactory: () -> UIViewController
var contactFactory: (Contact) -> UIViewController
var countriesFactory: (@escaping (Country) -> Void) -> UIViewController
contactsFactory: @escaping () -> UIViewController,
requestsFactory: @escaping () -> UIViewController,
contactFactory: @escaping (Contact) -> UIViewController,
countriesFactory: @escaping (@escaping (Country) -> Void) -> UIViewController
) {
self.contactFactory = contactFactory
self.contactsFactory = contactsFactory
self.requestsFactory = requestsFactory
}
extension SearchCoordinator: SearchCoordinating {
public func toRequests(from parent: UIViewController) {
let screen = requestsFactory()
replacePresenter.present(screen, from: parent)
}
public func toContacts(from parent: UIViewController) {
let screen = contactsFactory()
replacePresenter.present(screen, from: parent)
}
public func toContact(_ contact: Contact, from parent: UIViewController) {
public func toDrawer(_ drawer: UIViewController, from parent: UIViewController) {
bottomPresenter.present(drawer, from: parent)
public func toCountries(from parent: UIViewController, _ onChoose: @escaping (Country) -> Void) {
let screen = countriesFactory(onChoose)
pushPresenter.present(screen, from: parent)
public func toNicknameDrawer(_ target: UIViewController, from parent: UIViewController) {
let screen = ScrollViewController.embedding(target)
fullscreenPresenter.present(screen, from: parent)
}
}
extension ScrollViewController {
static func embedding(_ viewController: UIViewController) -> ScrollViewController {
let scrollViewController = ScrollViewController()
scrollViewController.addChild(viewController)
scrollViewController.contentView = viewController.view
scrollViewController.wrapperView.handlesTouchesOutsideContent = false
scrollViewController.wrapperView.alignContentToBottom = true
scrollViewController.scrollView.bounces = false
viewController.didMove(toParent: scrollViewController)
return scrollViewController
}