Tôi đang chơi xung quanh với kiến trúc MVVM-C, nhưng tôi không chắc chắn làm thế nào tôi có thể nhanh chóng nhiều điều phối viên với các tab khác nhau khi một tab được chọn.Làm thế nào để tôi sử dụng các điều phối viên với một UIITabBarController?
Dưới đây là chính lớp điều phối ứng dụng tôi ...
protocol UINavigationControllerType: class {
func pushViewController(_ viewController: UIViewController, animated: Bool)
func popViewController(animated: Bool) -> UIViewController?
}
protocol Coordinator: class {
func start()
}
final class AppCoordinator: Coordinator {
// MARK: - Properties
var managedObjectContext: NSManagedObjectContext!
var coordinators = [String : Coordinator]()
var tabController: UITabBarController?
// MARK: - Object Lifecycle
init(moc: NSManagedObjectContext, tabController: UITabBarController) {
self.managedObjectContext = moc
self.tabController = tabController
}
// MARK: - Coordinator
func start() {
guard let tabController = tabController else {return}
let profileNavigationController = NavigationController()
profileNavigationController.tabBarItem = UITabBarItem(title: "Profile", image: UIImage(named: "profileUnselected"), selectedImage: UIImage(named: "profileSelected"))
let plansNavigationController = NavigationController()
plansNavigationController.tabBarItem = UITabBarItem(title: "Plans", image: UIImage(named: "plansUnselected"), selectedImage: UIImage(named: "plansSelected"))
tabController.viewControllers = [profileNavigationController, plansNavigationController]
tabController.selectedViewController = profileNavigationController
let profileCoordinator = ProfileCoordinator(navigationController: profileNavigationController)
profileCoordinator.managedObjectContext = managedObjectContext
coordinators["profileCoordinator"] = profileCoordinator
profileCoordinator.delegate = self
profileCoordinator.start()
}
}
// MARK: - ProfileCoordinatorDelegate
extension AppCoordinator: ProfileCoordinatorDelegate {}
Vì vậy, làm thế nào tôi sẽ đi từ điều phối viên hiện tại (ProfileCoordinator) đến PlansCoordinator khi tab được chọn?
I có thể xem ví dụ về một trong NavigationCoordinators của bạn? Xin lỗi vì hồi âm muộn. –
Tôi đã chỉnh sửa trả lời của mình để bao gồm một ví dụ :) –