단어장 앱 ViewModel 및 Home 화면 로직 개선

버질·2025년 1월 13일

HomeViewController

설정 화면 이동 로직 추가:
설정 버튼(settingsButton) 터치 시 SettingViewController로 이동할 수 있도록 RxSwift를 활용해 이벤트를 처리.

private func bindViewModel() {
    homeView.settingsButton.rx.tap
        .subscribe(onNext: { [weak self] in
            self?.navigateToSettingScreen()
        })
        .disposed(by: disposeBag)
}

private func navigateToSettingScreen() {
    let settingViewController = SettingViewController()
    self.navigationController?.pushViewController(settingViewController, animated: true)
}

HomeViewVM

navigateToSettingScreen 프로퍼티 추가:
RxSwift의 PublishSubject를 활용하여 설정 화면 이동 이벤트를 ViewModel에서 관리하도록 추가.

let navigateToSettingScreen = PublishSubject<Void>()

SceneDelegate

앱 테마 유지 기능 구현:
앱 실행 시 저장된 사용자 설정을 기반으로 라이트/다크 모드 적용.

func applyTheme() {
    let savedValue = UserDefaults.standard.integer(forKey: UserDefaultsKeys.appTheme.rawValue)
    let userInterfaceStyle: UIUserInterfaceStyle = (savedValue == UIUserInterfaceStyle.dark.rawValue) ? .dark : .light
    if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
        for window in windowScene.windows {
            window.overrideUserInterfaceStyle = userInterfaceStyle
        }
    }
}
profile
iOS Developer · SwiftUI & UIKit '가끔 되고 가끔 안 되는' 문제를 뿌리부터 잡습니다.

0개의 댓글