Comments (3)
Готово! Метод apply(to:)
добавил :)
from literoute.
Привет! Спасибо за отзыв :)
Вариант с передачей уже сконфигурированого контроллера мне не нравится. Быть может сделать метод 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.
Мы сначала тоже думали использовать CustomTransition, но решили, что это нарушение логики в переходе конфигурировать модуль, это надо делать до перехода.
Первый метод как-то посимпатичнее выглядит, ты просто отдаешь наружу контроллер, а там уже каждый сам с ним разбирается как хочет.
Тогда по итогу можно отвязаться от фабрики и забирать(конфигурировать контроллер) при любом виде перехода в LightRoute.
Отличное решение!👍🏼
from literoute.
Related Issues (20)
- PopToRoot in NavigationController HOT 3
- Navigation controller pop bug
- .transition(animate: false) has no effect HOT 2
- popViewController HOT 1
- Key path of type 'KeyPath<Root, Type>' cannot be applied to a base of type 'UIViewController?' HOT 13
- Forgot remove several prints HOT 1
- StoryboardFactory question HOT 4
- ну и чо ты мне сломал HOT 2
- Needs add tests to project
- Переконвертируйте модуль под актуальную версию Swift 4.2 в pod-ах.
- .then closures not called
- Upload podspec for version 2.1.20 HOT 5
- then does not called HOT 1
- Ошибка в назначении moduleOutput HOT 1
- Swift Package Manager doesn't work HOT 1
- Проблема с подключением Pod-а. HOT 4
- How to use without using storyboard (Only xib)
- LiteRoute is not compatible with Swift5
- Update cocoapod to version 1.0.8 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from literoute.