I have application with TabBar (5 tabs) and I have created coordinator for each one(5 tabs = 5 coordinators). And also I have child coordinators. And some of the child coordinators should be used in main coordinators. How can I implement child coordinators to make it reusable?
MainCoordinator: Coordinator {
var childCoordinator = [Coordinator]()
var navController: UINavigatioController
...
func buyCoordinator() {
let child = BuyCoordinator()
child.parent = self
}
}
HomeCoordinator: Coordinator {
var childCoordinator = [Coordinator]()
var navController: UINavigatioController
...
func buyCoordinator() {
let child = BuyCoordinator()
child.parent = self
}
}
|
|
V
This is child coordinator
BuyCoordinator: Coordinator {
weak var parent: MainCoordintor? <--- I've stucked here (I have two parents: HomeCoordinator and MainCoordinator)
}
You can't do that. The Coordinator Pattern relies on 1->N relationship. You can have one parent coordinator for N child coordinators. But YOU CAN'T HAVE ONE CHILD COORDINATOR TO N PARENT COORDINATOR BEING THE SAME CLASS.
For example:
MainCoordinator: Coordinator {
var childCoordinator = [Coordinator]()
var navController: UINavigatioController
func buyCoordinator() {
let child = BuyCoordinator()
child.parent = self
}
}
HomeCoordinator: Coordinator {
var childCoordinator = [Coordinator]()
var navController: UINavigatioController
func buyCoordinator() {
let child = BuyCoordinator()
child.parent = self
}
}
BuyCoordinatorOne: Coordinator {
weak var parent: MainCoordintor?
}
BuyCoordinatorTwo: Coordinator {
weak var parent: HomeCoordinator?
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.