Skip to content

Commit b5a0e7d

Browse files
authored
[NL-89]: 온보딩 back button 이벤트 연결 (#67)
1 parent 1b88585 commit b5a0e7d

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

Feature/Onboarding/Sources/Onboarding/OnboardingViewModel.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import Lib
1515
public class OnboardingViewModel {
1616

1717
enum Input {
18+
case backButtonTap
1819
case checkNameFormat(name: String)
1920
case genderSelected(isSelected: GenderType)
2021
case checkBirthFormat(birth: String)
@@ -30,6 +31,7 @@ public class OnboardingViewModel {
3031
let isNextButtonEnabled: PassthroughSubject<Bool, Never> = .init()
3132
let isBornTimeButtonEnabled: PassthroughSubject<Bool, Never> = .init()
3233
let navigate: PassthroughSubject<OnboardingRoute, Never> = .init()
34+
let back: PassthroughSubject<Void, Never> = .init()
3335
}
3436

3537
let output: Output = Output()
@@ -46,6 +48,8 @@ public class OnboardingViewModel {
4648

4749
func send(input: Input) {
4850
switch input {
51+
case .backButtonTap:
52+
self.output.back.send(())
4953
case .checkNameFormat(let name):
5054
self._isNameValid = checkNameFormat(name: name)
5155
if self._isNameValid { self.state.name = name }

Feature/Onboarding/Sources/Onboarding/OnboardingViewcontroller.swift

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,9 @@ public final class OnboardingViewController: BaseViewController {
183183
override public func viewDidLoad() {
184184
super.viewDidLoad()
185185
self.view.backgroundColor = .white
186-
let backButtonItem = NaivgationBarButtonItem.back
187-
self.setNavigationBarLeftButtonItems(items: [backButtonItem])
188186
setupBind()
189187
setupHierarchy()
188+
setupNavigationBar()
190189
setupLayout()
191190
setupDelegate()
192191
setupKeyboardObservers()
@@ -227,6 +226,16 @@ extension OnboardingViewController {
227226
self.bornTimeStack.addArrangedSubview(bornTimeSetButton)
228227
self.bornTimeStack.addArrangedSubview(dontKnowButton)
229228
}
229+
230+
private func setupNavigationBar() {
231+
let backButtonItem = NaivgationBarButtonItem.back
232+
backButtonItem.tapPublisher
233+
.sink { [weak self] _ in
234+
self?.viewModel.send(input: .backButtonTap)
235+
}
236+
.store(in: &cancellables)
237+
setNavigationBarLeftButtonItems(items: [backButtonItem])
238+
}
230239

231240
private func setupDelegate() {
232241
nameTextField.delegate = self
@@ -236,6 +245,12 @@ extension OnboardingViewController {
236245
}
237246

238247
private func setupBind() {
248+
viewModel.output.back
249+
.receive(on: DispatchQueue.main)
250+
.sink { [weak self] _ in
251+
self?.navigationController?.popViewController(animated: true)
252+
}
253+
.store(in: &cancellables)
239254

240255
viewModel.output.isNextButtonEnabled
241256
.receive(on: RunLoop.main)

0 commit comments

Comments
 (0)