@@ -11,6 +11,7 @@ import DIInjector
1111import DesignSystem
1212import Foundation
1313import UIKit
14+ import DIInjector
1415
1516public protocol EditProfileViewControllerProtocol {
1617 func showToast( )
@@ -36,17 +37,15 @@ final class EditProfileViewController: BaseViewController {
3637 $0. spacing = 28
3738 $0. alignment = . leading
3839 }
39-
40+
4041 private lazy var backgourndView = UIView ( ) . then {
4142 $0. isHidden = true
4243 $0. backgroundColor = STColors . black. color. withAlphaComponent ( 0.5 )
4344 }
44-
45+
4546 private lazy var popup = PopUp ( ) . then {
4647 $0. isHidden = true
47- $0. update (
48- titile: " 수정 중인 내용이 있소 " , description: " 저장하지 않고 화면을 벗어나면 \n 감쪽같이 사라질 것이오 " ,
49- actionButtonTitle: " 계속 수정하기 " , outButtonTitle: " 나가기 " )
48+ $0. update ( titile: " 수정 중인 내용이 있소 " , description: " 저장하지 않고 화면을 벗어나면 \n 감쪽같이 사라질 것이오 " , actionButtonTitle: " 계속 수정하기 " , outButtonTitle: " 나가기 " )
5049 }
5150
5251 private lazy var nameStack = UIStackView ( ) . then {
@@ -198,13 +197,13 @@ extension EditProfileViewController {
198197 private func setDelegate( ) {
199198 self . nameTextField. delegate = self
200199 self . birthTextField. delegate = self
200+ genderSelectionView. delegate = self
201201 }
202202
203203 private func setupUI( ) {
204204 self . view. backgroundColor = STColors . white. color
205205 self . view. addSubview ( scrollView)
206206 self . view. addSubview ( saveButton)
207- self . view. addSubview ( backgourndView)
208207 backgourndView. addSubview ( popup)
209208 scrollView. addSubview ( contentView)
210209 contentView. addSubview ( contentStackView)
@@ -240,21 +239,7 @@ extension EditProfileViewController {
240239 make. top. bottom. equalToSuperview ( )
241240 make. leading. trailing. equalToSuperview ( ) . inset ( 24 )
242241 }
243-
244- backgourndView. snp. makeConstraints { make in
245- make. edges. equalToSuperview ( )
246- }
247-
248- popup. snp. makeConstraints { make in
249- make. center. equalToSuperview ( )
250- make. width. equalTo ( 327 )
251- make. height. equalTo ( 206 )
252- }
253-
254- backgourndView. snp. makeConstraints { make in
255- make. edges. equalToSuperview ( )
256- }
257-
242+
258243 popup. snp. makeConstraints { make in
259244 make. center. equalToSuperview ( )
260245 make. width. equalTo ( 327 )
@@ -402,6 +387,10 @@ extension EditProfileViewController {
402387 . receive ( on: RunLoop . main)
403388 . sink { [ weak self] isHidden in
404389 guard let self else { return }
390+ self . navigationController? . view. addSubview ( backgourndView)
391+ backgourndView. snp. makeConstraints { make in
392+ make. edges. equalToSuperview ( )
393+ }
405394 self . popup. isHidden = isHidden
406395 self . backgourndView. isHidden = isHidden
407396 }
@@ -410,45 +399,15 @@ extension EditProfileViewController {
410399 popup. outButton. tapPublisher
411400 . sink { [ weak self] _ in
412401 guard let self else { return }
413- self . navigationController? . popViewController ( animated: true )
414- }
415- . store ( in: & store)
416-
417- viewModel. output. setTimePickerLabel
418- . receive ( on: RunLoop . main)
419- . sink { [ weak self] time in
420- guard let self else { return }
421- self . bornTimeSetButton. selectedItem = time
422- }
423- . store ( in: & store)
424-
425- viewModel. output. navigate
426- . receive ( on: RunLoop . main)
427- . sink { [ weak self] route in
428- guard let self else { return }
429- if route == . pop { self . navigationController? . popViewController ( animated: true ) }
430- }
431- . store ( in: & store)
432-
433- viewModel. output. updatePopupHiden
434- . receive ( on: RunLoop . main)
435- . sink { [ weak self] isHidden in
436- guard let self else { return }
437- self . popup. isHidden = isHidden
438- self . backgourndView. isHidden = isHidden
439- }
440- . store ( in: & store)
441-
442- popup. outButton. tapPublisher
443- . sink { [ weak self] _ in
444- guard let self else { return }
402+ self . backgourndView. removeFromSuperview ( )
445403 self . navigationController? . popViewController ( animated: true )
446404 }
447405 . store ( in: & store)
448406
449407 popup. actionButton. tapPublisher
450408 . sink { [ weak self] _ in
451409 guard let self else { return }
410+ self . backgourndView. removeFromSuperview ( )
452411 self . popup. isHidden = true
453412 self . backgourndView. isHidden = true
454413 }
@@ -527,6 +486,18 @@ extension EditProfileViewController {
527486 }
528487}
529488
489+ extension EditProfileViewController : GenderSelectionViewDelegate {
490+ func genderSelectionView( _ view: DesignSystem . GenderSelectionView , didSelectGender gender: String ? ) {
491+ guard let gender = gender else { return }
492+
493+ var genderType : GenderType
494+
495+ if gender == " 남성 " { genderType = . male } else { genderType = . female }
496+ viewModel. send ( input: . genderSelected( isSelected: genderType) )
497+ }
498+
499+ }
500+
530501extension EditProfileViewController : UITextFieldDelegate {
531502 public func textFieldDidBeginEditing( _ textField: UITextField ) {
532503 textField. layer. borderColor = STColors . primary2. color. cgColor
0 commit comments