我正在玩MVVM-C體系結構,但我不確定如何在選擇選項卡時實例化具有不同選項卡的多個協調器。如何使用UIITabBarController協調器?
這是我主要的應用程序協調類...
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 {}
那麼,如何將從目前的協調員(ProfileCoordinator)到PlansCoordinator去選擇標籤時?
我可以看到你的NavigationCoordinators的一個例子嗎?這麼晚纔回復很抱歉。 –
我編輯了我的回覆以包含示例:) –