MoviesSearchFlowCoordinator
final class MoviesSearchFlowCoordinator : NSObject, Coordinator
extension MoviesSearchFlowCoordinator: UINavigationControllerDelegate
MoviesSearch 화면의 flow를 담당하는 클래스입니다.
-
Declaration
Swift
var type: CoordinatorType { get } -
Declaration
Swift
weak var finishDelegate: CoordinatorFinishDelegate? -
Declaration
Swift
weak var tabBarDelegate: TabBarDelegate? -
Declaration
Swift
var childCoordinators: [Coordinator] -
Declaration
Swift
var navigationController: UINavigationController -
Declaration
Swift
var viewTitle: String? -
Declaration
Swift
private let dependencies: MoviesSearchFlowCoordinatorDependencies! -
Declaration
Swift
private weak var moviesSearchVC: MoviesSearchViewController? -
MoviesSearchViewController에서addChild,removeParent과 같이 하나의 ViewController안에 새로운 ViewController를 추가하는 로직이 있을 때flowCoordinator에서 전체적인 관리를 위해 약한 참조로 변수를 만듭니다.Declaration
Swift
private weak var moviesQueriesSuggestionsVC: MoviesQueriesTableViewController? -
Declaration
Swift
init( navigationController: UINavigationController, dependencies: MoviesSearchFlowCoordinatorDependencies ) -
Declaration
Swift
func start() -
Details View Controller를 생성하며, navigationController에 push하는 메서드입니다.
Declaration
Swift
private func showMovieDetails(movie: MovieWhenSearch)Parameters
movieMoviesDetailViewModel에서 필요로하는Entity입니다. -
Moive Queries Suggestions ViewController를 생성하며,
MoviesSearchViewController에 직접 생성하는 메서드입니다.- QueriesSuggestionsViewController를 SearchViewController에 addChild해줍니다.
Declaration
Swift
private func showMovieQueriesSuggestions(didSelect: @escaping MoviesQueryListViewModelDidSelectAction)Parameters
didSelecttypealias
MoviesQueryListViewModelDidSelectAction를 파라미터로 받으며, 이는DefaultMoviesSearchViewModel클래스의update(movieQuery: MovieQuery)메서드 입니다. -
Moive Queries Suggestions ViewController를 삭제합니다.
- AddChild된것을 삭제해주며, 참조되어있는것을 nil처리 해줘 해당 QueriesSuggestionsViewController를 삭제해줍니다.
Declaration
Swift
private func closeMovieQueriesSuggestions() -
숨겨진 tabBar를 다시 보여주기 위해 활용되는 메서드입니다.
- 이는 viewController가
MoviesSearchViewController일 시 tabBar hidden처리를 false해줍니다.
Declaration
Swift
func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) - 이는 viewController가
MoviesSearchFlowCoordinator Class Reference