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
coordinators
coordinator 배열입니다.
- 각 Coordinator의
-
Declaration
Swift
func coordinatorDidFinish(childCoordinator: Coordinator)