From fcc3046b17a17064824371246a42868376de18f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S057=5F=EC=B5=9C=EC=88=98=EC=A0=95?= Date: Tue, 30 Nov 2021 14:17:07 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20#319=20StatusBar=20=EC=A0=91?= =?UTF-8?q?=EA=B7=BC=20=EB=A1=9C=EC=A7=81=20=EB=A6=AC=ED=8C=A9=ED=86=A0?= =?UTF-8?q?=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Foreground/Home/HomeCoordinator.swift | 5 +-- .../Foreground/Home/HomeViewController.swift | 32 ++++++++++--------- .../Global/Coordinator/AppCoordinator.swift | 7 ++-- .../BBus/Global/Coordinator/Coordinator.swift | 3 -- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/BBus/BBus/Foreground/Home/HomeCoordinator.swift b/BBus/BBus/Foreground/Home/HomeCoordinator.swift index db615299..e30af905 100644 --- a/BBus/BBus/Foreground/Home/HomeCoordinator.swift +++ b/BBus/BBus/Foreground/Home/HomeCoordinator.swift @@ -15,7 +15,7 @@ final class HomeCoordinator: SearchPushable, BusRoutePushable, AlarmSettingPusha self.navigationPresenter = presenter } - func start() { + func start(statusBarHeight: CGFloat?) { let apiUseCases = BBusAPIUseCases(networkService: NetworkService(), persistenceStorage: PersistenceStorage(), tokenManageType: TokenManager.self, @@ -23,8 +23,9 @@ final class HomeCoordinator: SearchPushable, BusRoutePushable, AlarmSettingPusha let apiUseCase = HomeAPIUseCase(useCases: apiUseCases) let calculateUseCase = HomeCalculateUseCase() let viewModel = HomeViewModel(apiUseCase: apiUseCase, calculateUseCase: calculateUseCase) - let viewController = HomeViewController(viewModel: viewModel) + let viewController = HomeViewController(viewModel: viewModel, statusBarHegiht: statusBarHeight) viewController.coordinator = self + navigationPresenter.pushViewController(viewController, animated: false) // present } } diff --git a/BBus/BBus/Foreground/Home/HomeViewController.swift b/BBus/BBus/Foreground/Home/HomeViewController.swift index 08cbc984..23587d76 100644 --- a/BBus/BBus/Foreground/Home/HomeViewController.swift +++ b/BBus/BBus/Foreground/Home/HomeViewController.swift @@ -16,16 +16,19 @@ final class HomeViewController: UIViewController, BaseViewControllerType { private let viewModel: HomeViewModel? private lazy var homeView = HomeView() - + private let statusBarHeight: CGFloat? + private var cancellables: Set = [] - init(viewModel: HomeViewModel) { + init(viewModel: HomeViewModel, statusBarHegiht: CGFloat?) { self.viewModel = viewModel + self.statusBarHeight = statusBarHegiht super.init(nibName: nil, bundle: nil) } required init?(coder: NSCoder) { self.viewModel = nil + self.statusBarHeight = nil super.init(coder: coder) } @@ -64,19 +67,18 @@ final class HomeViewController: UIViewController, BaseViewControllerType { } private func configureStatusBarLayout() { - let app = UIApplication.shared - let statusBarHeight: CGFloat = app.statusBarFrame.size.height - - let statusbarView = UIView() - statusbarView.backgroundColor = BBusColor.white //컬러 설정 부분 - - self.view.addSubviews(statusbarView) - NSLayoutConstraint.activate([ - statusbarView.heightAnchor.constraint(equalToConstant: statusBarHeight), - statusbarView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 1.0), - statusbarView.topAnchor.constraint(equalTo: self.view.topAnchor), - statusbarView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor) - ]) + if let statusBarHeight = self.statusBarHeight { + let statusbarView = UIView() + statusbarView.backgroundColor = BBusColor.white //컬러 설정 부분 + + self.view.addSubviews(statusbarView) + NSLayoutConstraint.activate([ + statusbarView.heightAnchor.constraint(equalToConstant: statusBarHeight), + statusbarView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 1.0), + statusbarView.topAnchor.constraint(equalTo: self.view.topAnchor), + statusbarView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor) + ]) + } self.homeView.configureLayout() } diff --git a/BBus/BBus/Global/Coordinator/AppCoordinator.swift b/BBus/BBus/Global/Coordinator/AppCoordinator.swift index 74da9ca2..ac44551a 100644 --- a/BBus/BBus/Global/Coordinator/AppCoordinator.swift +++ b/BBus/BBus/Global/Coordinator/AppCoordinator.swift @@ -14,6 +14,10 @@ final class AppCoordinator: NSObject, Coordinator { var navigationPresenter: UINavigationController var movingStatusPresenter: UIViewController? var childCoordinators: [Coordinator] + + var statusBarHeight: CGFloat? { + return self.navigationWindow.windowScene?.statusBarManager?.statusBarFrame.height + } init(navigationWindow: UIWindow, movingStatusWindow: UIWindow) { self.navigationWindow = navigationWindow @@ -33,7 +37,7 @@ final class AppCoordinator: NSObject, Coordinator { coordinator.delegate = self coordinator.navigationPresenter = self.navigationPresenter self.childCoordinators.append(coordinator) - coordinator.start() + coordinator.start(statusBarHeight: self.statusBarHeight) self.navigationWindow.makeKeyAndVisible() self.movingStatusWindow.makeKeyAndVisible() @@ -191,4 +195,3 @@ extension AppCoordinator: CoordinatorFinishDelegate { } } } - diff --git a/BBus/BBus/Global/Coordinator/Coordinator.swift b/BBus/BBus/Global/Coordinator/Coordinator.swift index 7e07172f..b56fdb18 100644 --- a/BBus/BBus/Global/Coordinator/Coordinator.swift +++ b/BBus/BBus/Global/Coordinator/Coordinator.swift @@ -32,12 +32,9 @@ typealias CoordinatorDelegate = (CoordinatorFinishDelegate & CoordinatorCreateDe protocol Coordinator: AnyObject { var navigationPresenter: UINavigationController { get set } var delegate: CoordinatorDelegate? { get set } - func start() } extension Coordinator { - func start() { } - func coordinatorDidFinish() { self.delegate?.removeChildCoordinator(self) } From 642974e2a6918f07f9e0836974277a6d590545ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S057=5F=EC=B5=9C=EC=88=98=EC=A0=95?= Date: Tue, 30 Nov 2021 14:35:47 +0900 Subject: [PATCH 2/2] =?UTF-8?q?refactor:=20#319=20configureLayout()=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Foreground/Home/HomeViewController.swift | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/BBus/BBus/Foreground/Home/HomeViewController.swift b/BBus/BBus/Foreground/Home/HomeViewController.swift index 23587d76..23d8ddf0 100644 --- a/BBus/BBus/Foreground/Home/HomeViewController.swift +++ b/BBus/BBus/Foreground/Home/HomeViewController.swift @@ -56,31 +56,29 @@ final class HomeViewController: UIViewController, BaseViewControllerType { // MARK: - Configuration func configureLayout() { self.view.addSubviews(self.homeView) - NSLayoutConstraint.activate([ self.homeView.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor), self.homeView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor), self.homeView.leadingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.leadingAnchor), self.homeView.trailingAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.trailingAnchor) ]) - + + self.homeView.configureLayout() } private func configureStatusBarLayout() { - if let statusBarHeight = self.statusBarHeight { - let statusbarView = UIView() - statusbarView.backgroundColor = BBusColor.white //컬러 설정 부분 - - self.view.addSubviews(statusbarView) - NSLayoutConstraint.activate([ - statusbarView.heightAnchor.constraint(equalToConstant: statusBarHeight), - statusbarView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 1.0), - statusbarView.topAnchor.constraint(equalTo: self.view.topAnchor), - statusbarView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor) - ]) - } + guard let statusBarHeight = self.statusBarHeight else { return } - self.homeView.configureLayout() + let statusbarView = UIView() + statusbarView.backgroundColor = BBusColor.white //컬러 설정 부분 + + self.view.addSubviews(statusbarView) + NSLayoutConstraint.activate([ + statusbarView.heightAnchor.constraint(equalToConstant: statusBarHeight), + statusbarView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 1.0), + statusbarView.topAnchor.constraint(equalTo: self.view.topAnchor), + statusbarView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor) + ]) } func configureDelegate() {