Giter Club home page Giter Club logo

Comments (3)

SpectralDragon avatar SpectralDragon commented on September 26, 2024 1

Готово! Метод apply(to:) добавил :)

from literoute.

SpectralDragon avatar SpectralDragon commented on September 26, 2024

Привет! Спасибо за отзыв :)
Вариант с передачей уже сконфигурированого контроллера мне не нравится. Быть может сделать метод apply(to:) который будет возвращать destination controller?
В конце концов реализация будет такой:

let storyboard = UIStoryboard(name: storyboardName, bundle: Bundle.main)
let factory = StoryboardFactory(storyboard: storyboard, restorationId: viewControllerId)

transitionHandler
	.forStoryboard(factory: factory, to type: ViewControllerModuleInput.self)
	.apply(to: { controller in 
		_ = ViewControllerModuleInitializer(viewController: controller, forLogin: true)
	})
	.to(preferred: .navigationController(preferredStyle: .push))
	.then { moduleInput in
		moduleInput.configure(with: "configure module input")
        }

Ну или так:

func viewControllerConfigurator(controller: ViewController) {
	// Your configurations
}

let storyboard = UIStoryboard(name: storyboardName, bundle: Bundle.main)
let factory = StoryboardFactory(storyboard: storyboard, restorationId: viewControllerId)

transitionHandler
	.forStoryboard(factory: factory, to type: ViewControllerModuleInput.self)
	.apply(to: self.viewControllerConfigurator)
	.to(preferred: .navigationController(preferredStyle: .push))
	.then { moduleInput in
		moduleInput.configure(with: "configure module input")
        }

Как считаешь? 🤔

А вообще, для этих целей обычно использую CustomTransition)

from literoute.

Ikloo avatar Ikloo commented on September 26, 2024

Мы сначала тоже думали использовать CustomTransition, но решили, что это нарушение логики в переходе конфигурировать модуль, это надо делать до перехода.
Первый метод как-то посимпатичнее выглядит, ты просто отдаешь наружу контроллер, а там уже каждый сам с ним разбирается как хочет.
Тогда по итогу можно отвязаться от фабрики и забирать(конфигурировать контроллер) при любом виде перехода в LightRoute.
Отличное решение!👍🏼

from literoute.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.