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
movie
MoviesDetailViewModel
에서 필요로하는Entity
입니다. -
Moive Queries Suggestions ViewController를 생성하며,
MoviesSearchViewController
에 직접 생성하는 메서드입니다.- QueriesSuggestionsViewController를 SearchViewController에 addChild해줍니다.
Declaration
Swift
private func showMovieQueriesSuggestions(didSelect: @escaping MoviesQueryListViewModelDidSelectAction)
Parameters
didSelect
typealias
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가