TabBarFlowCoordinator
final class TabBarFlowCoordinator : NSObject, Coordinator
extension TabBarFlowCoordinator: CoordinatorFinishDelegate
TabBarController를 관리하는 클래스입니다.
-
Declaration
Swift
var type: CoordinatorType { get } -
Declaration
Swift
var viewTitle: String? -
Declaration
Swift
weak var finishDelegate: CoordinatorFinishDelegate? -
Declaration
Swift
weak var tabBarDelegate: TabBarDelegate? -
Declaration
Swift
var childCoordinators: [Coordinator] -
Declaration
Swift
var navigationController: UINavigationController -
Declaration
Swift
private var tabBarController: DefaultTabBarController! -
Declaration
Swift
init( navigationController: UINavigationController, tabBarController: DefaultTabBarController ) -
Declaration
Swift
func start() -
App Flow Coordinator에서
setupTabs함수를 호출합니다.let viewControllers = coordinators.enumerated().map { (index, coordinator) -> UINavigationController in if let tabPage = TabBarPage(index: index) { coordinator.tabBarDelegate = tabBarController coordinator.viewTitle = NSLocalizedString(tabPage.pageTitleValue(), comment: "") } else { assertionFailure("Invalid tab index: \(index)") } coordinator.finishDelegate = self coordinator.start() childCoordinators.append(coordinator) return coordinator.navigationController } tabBarController.setViewControllers(viewControllers)- 각 Coordinator의
tabBarDelegate를self처리, - 각 Coordinator의
finishDelegate를self처리, - 각 Coordinator의
start함수를 호출하고,childCoordinators에 append하며,tabBarController의setViewControllers메서드를 호출하면서, 파라미터로 각 Coordinator의UINavigationController를 추가합니다.
Declaration
Swift
func setupTabs(with coordinators: [Coordinator])Parameters
coordinatorscoordinator 배열입니다.
- 각 Coordinator의
-
Declaration
Swift
func coordinatorDidFinish(childCoordinator: Coordinator)
TabBarFlowCoordinator Class Reference