MoviesSearchViewController
final class MoviesSearchViewController : UIViewController, Alertable
extension MoviesSearchViewController: UISearchBarDelegate
extension MoviesSearchViewController: UISearchControllerDelegate
-
- 강제 옵셔널를 사용하여 뷰 컨트롤러가 기능하는 데 중요한 역할을 함을 명확하게 표현합니다.
- 이 방법은
viewModel
의 중요성을 강조하고, 실수로nil
을 할당하는 것을 방지하는 데 도움이 될 수 있습니다.
Declaration
Swift
private var viewModel: MoviesSearchViewModel!
-
Declaration
Swift
private var posterImagesUseCase: PosterImagesUseCase?
-
Declaration
Swift
private var moviesTableViewController: MoviesListTableViewController?
-
Declaration
Swift
private let disposeBag: DisposeBag
-
Declaration
Swift
private var searchController: UISearchController
-
Declaration
Swift
private lazy var moviesListContainer: UIView { get set }
-
Declaration
Swift
private(set) lazy var suggestionsListContainer: UIView { get set }
-
Declaration
Swift
private lazy var searchBarContainer: UIView { get set }
-
Declaration
Swift
private lazy var emptyDataLabel: UILabel { get set }
-
ViewController
의 생성을 Static 메서드를 활용해서 생성 로직을 DIContainer에 중앙화 할 수 있습니다.Declaration
Swift
static func create( with viewModel: MoviesSearchViewModel, posterImagesUseCase: PosterImagesUseCase? ) -> MoviesSearchViewController
Parameters
viewModel
MoviesSearchViewController
가 사용할 뷰 모델, 이 뷰 모델은 로그인 관련 로직을 처리하는 데 사용됩니다.posterImagesRepostiory
MoviesListItemCell
에서 사용할 Repository입니다.Return Value
초기화된
MoviesSearchViewController
인스턴스를 반환합니다. -
Declaration
Swift
override func viewDidLoad()
-
Declaration
Swift
override func viewDidLayoutSubviews()
-
Declaration
Swift
private func setupView()
-
Declaration
Swift
private func bind(to viewModel: MoviesSearchViewModel)
-
Declaration
Swift
private func updateTimes()
-
Declaration
Swift
private func updateLoading(_ loading: MoviesSearchViewModelLoading?)
-
Declaration
Swift
private func updateQueriesSuggestions()
-
Declaration
Swift
private func updateSearchQuery(_ query: String)
-
Declaration
Swift
private func showError(_ error: String)
-
Declaration
Swift
private func setupSearchController()
-
Declaration
Swift
func searchBarSearchButtonClicked(_ searchBar: UISearchBar)
-
Declaration
Swift
func searchBarCancelButtonClicked(_ searchBar: UISearchBar)
-
Declaration
Swift
func willPresentSearchController(_ searchController: UISearchController)
-
Declaration
Swift
func willDismissSearchController(_ searchController: UISearchController)
-
Declaration
Swift
func didDismissSearchController(_ searchController: UISearchController)