From be82f1c893169320484c246fc15663df0a8fa2ee Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 14:18:50 +0900 Subject: [PATCH 1/9] =?UTF-8?q?[Feat]=20#11=20-=20NavigationBar=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VC/CourseDrawingHomeVC.swift | 2 ++ .../Presentation/MyPage/VC/MyPageVC.swift | 36 +++++++++++++++++-- .../Presentation/TabBar/TaBarController.swift | 2 +- 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/CourseDrawing/VC/CourseDrawingHomeVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/CourseDrawing/VC/CourseDrawingHomeVC.swift index 69bedd9f..9da09656 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/CourseDrawing/VC/CourseDrawingHomeVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/CourseDrawing/VC/CourseDrawingHomeVC.swift @@ -38,3 +38,5 @@ final class CourseDrawingHomeVC: UIViewController, CustomNavigationBarDelegate { print(text) } } + + diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index 2d48c178..35fa83d2 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -6,11 +6,43 @@ // import UIKit +import SnapKit +import Then -final class MyPageVC: UIViewController { +final class MyPageVC: UIViewController, CustomNavigationBarDelegate { + + private lazy var navibar = CustomNavigationBar(self, type: .title).setTitle("마이페이지") override func viewDidLoad() { super.viewDidLoad() - view.backgroundColor = .m2 + setNavigationBar() + setUI() + setLayout() + } + + func searchButtonDidTap(text: String) { + print(text) + } +} + +extension MyPageVC { + + private func setNavigationBar() { + navibar.delegate = self + + view.addSubview(navibar) + + navibar.snp.makeConstraints { make in + make.leading.top.trailing.equalTo(view.safeAreaLayoutGuide) + make.height.equalTo(48) + } + } + + private func setUI() { + view.backgroundColor = .white + } + + private func setLayout() { + } } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/TabBar/TaBarController.swift b/Runnect-iOS/Runnect-iOS/Presentation/TabBar/TaBarController.swift index bcebc2ea..01657dff 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/TabBar/TaBarController.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/TabBar/TaBarController.swift @@ -46,7 +46,7 @@ extension TabBarController { let myPageNVC = templateNavigationController(title: "마이페이지", unselectedImage: ImageLiterals.icMypage, selectedImage: ImageLiterals.icMypageFill, - rootViewController: CourseStorageVC()) + rootViewController: MyPageVC()) viewControllers = [courseDrawingNVC, courseStorageNVC, courseDiscoveryNVC, myPageNVC] } From c5ae07b2af12115a5615e5c15b2ecda713fbc8d6 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 15:17:18 +0900 Subject: [PATCH 2/9] =?UTF-8?q?[Feat]=20#11=20-=20Profile=20View=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/MyPage/VC/MyPageVC.swift | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index 35fa83d2..13caaa78 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -12,6 +12,26 @@ import Then final class MyPageVC: UIViewController, CustomNavigationBarDelegate { private lazy var navibar = CustomNavigationBar(self, type: .title).setTitle("마이페이지") + private let myProfileView = UIView() + private let myProfileImage = UIImageView().then { + $0.image = ImageLiterals.imgStampR2 + } + private let myProfileNameLabel = UILabel().then { + $0.text = "말랑콩떡" + $0.textColor = .m1 + $0.font = .h4 + } + private let myProfileEditButton = UIButton(type: .system).then { + $0.setImage(ImageLiterals.icEdit, for: .normal) + $0.setTitle("수정하기", for: .normal) + $0.titleLabel?.font = .b7 + $0.setTitleColor(.m2, for: .normal) + $0.tintColor = .m2 + $0.layer.borderWidth = 1 + $0.layer.borderColor = UIColor.m2.cgColor + $0.layer.cornerRadius = 15 + $0.configuration?.imagePadding = 3 + } override func viewDidLoad() { super.viewDidLoad() @@ -40,9 +60,38 @@ extension MyPageVC { private func setUI() { view.backgroundColor = .white + myProfileView.backgroundColor = .m3 } private func setLayout() { + view.addSubviews(myProfileView) + + myProfileView.snp.makeConstraints { make in + make.top.equalTo(navibar.snp.bottom).offset(6) + make.leading.trailing.equalToSuperview() + make.height.equalTo(84) + } + + myProfileView.addSubviews(myProfileImage, myProfileNameLabel, myProfileEditButton) + myProfileImage.snp.makeConstraints { make in + make.top.equalToSuperview().offset(11) + make.leading.equalToSuperview().offset(23) + make.width.equalTo(63) + make.height.equalTo(63) + } + + myProfileNameLabel.snp.makeConstraints { make in + make.top.equalToSuperview().offset(32) + make.leading.equalTo(myProfileImage.snp.trailing).offset(10) + } + + myProfileEditButton.snp.makeConstraints { make in + make.top.equalToSuperview().offset(29) + make.trailing.equalToSuperview().inset(16) + make.width.equalTo(78) + make.height.equalTo(28) + } + } } From b9eabfcf35e7794bdb356db6e86dc6084f85f200 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 15:29:43 +0900 Subject: [PATCH 3/9] =?UTF-8?q?[Fix]=20#11=20-=20myProfileEditButton=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runnect-iOS/Global/Supports/SceneDelegate.swift | 2 +- .../Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Global/Supports/SceneDelegate.swift b/Runnect-iOS/Runnect-iOS/Global/Supports/SceneDelegate.swift index ac34efc3..b1a5c3a4 100644 --- a/Runnect-iOS/Runnect-iOS/Global/Supports/SceneDelegate.swift +++ b/Runnect-iOS/Runnect-iOS/Global/Supports/SceneDelegate.swift @@ -16,7 +16,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { guard let windowScene = (scene as? UIWindowScene) else { return } let window = UIWindow(windowScene: windowScene) - window.rootViewController = UINavigationController(rootViewController: SplashVC()) + window.rootViewController = TabBarController() self.window = window window.makeKeyAndVisible() } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index 13caaa78..dc8ab56e 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -11,16 +11,20 @@ import Then final class MyPageVC: UIViewController, CustomNavigationBarDelegate { + // MARK: - UI Components + private lazy var navibar = CustomNavigationBar(self, type: .title).setTitle("마이페이지") private let myProfileView = UIView() private let myProfileImage = UIImageView().then { $0.image = ImageLiterals.imgStampR2 } + private let myProfileNameLabel = UILabel().then { $0.text = "말랑콩떡" $0.textColor = .m1 $0.font = .h4 } + private let myProfileEditButton = UIButton(type: .system).then { $0.setImage(ImageLiterals.icEdit, for: .normal) $0.setTitle("수정하기", for: .normal) @@ -29,8 +33,8 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { $0.tintColor = .m2 $0.layer.borderWidth = 1 $0.layer.borderColor = UIColor.m2.cgColor - $0.layer.cornerRadius = 15 - $0.configuration?.imagePadding = 3 + $0.layer.cornerRadius = 14 + $0.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 4) } override func viewDidLoad() { @@ -45,6 +49,8 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { } } +// MARK: - UI & Layout + extension MyPageVC { private func setNavigationBar() { From d00476e347a81c4bdcea07daa311422b8f048bcf Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 15:54:17 +0900 Subject: [PATCH 4/9] =?UTF-8?q?[Feat]=20#11=20-=20myRunningProgressView=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/MyPage/VC/MyPageVC.swift | 53 ++++++++++++++++++- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index dc8ab56e..a92f1066 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -15,6 +15,8 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { private lazy var navibar = CustomNavigationBar(self, type: .title).setTitle("마이페이지") private let myProfileView = UIView() + private let myRunningProgressView = UIView() + private let myProfileImage = UIImageView().then { $0.image = ImageLiterals.imgStampR2 } @@ -36,6 +38,29 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { $0.layer.cornerRadius = 14 $0.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 4) } + + private let myRunningLevelLavel = UILabel().then { + $0.text = "LV 3" + $0.textColor = .g1 + $0.font = .h5 + } + + private let myRunningProgressBar = UIProgressView(progressViewStyle: .bar).then { + $0.translatesAutoresizingMaskIntoConstraints = false + $0.setProgress(0.25, animated: false) + $0.progressTintColor = .m1 + $0.trackTintColor = .m3 + $0.layer.cornerRadius = 6 + $0.clipsToBounds = true + $0.layer.sublayers![1].cornerRadius = 6 + $0.subviews[1].clipsToBounds = true + } + + private let myRunnigProgressPercentLabel = UILabel().then { + let attributedString = NSMutableAttributedString(string: "25", attributes: [.font: UIFont.b5, .foregroundColor: UIColor.g1]) + attributedString.append(NSAttributedString(string: " /100", attributes: [.font: UIFont.b5, .foregroundColor: UIColor.g2])) + $0.attributedText = attributedString + } override func viewDidLoad() { super.viewDidLoad() @@ -70,7 +95,7 @@ extension MyPageVC { } private func setLayout() { - view.addSubviews(myProfileView) + view.addSubviews(myProfileView, myRunningProgressView) myProfileView.snp.makeConstraints { make in make.top.equalTo(navibar.snp.bottom).offset(6) @@ -98,6 +123,30 @@ extension MyPageVC { make.width.equalTo(78) make.height.equalTo(28) } - + + myRunningProgressView.snp.makeConstraints { make in + make.top.equalTo(myProfileView.snp.bottom).offset(18) + make.leading.trailing.equalToSuperview().inset(16) + make.height.equalTo(55) + } + + myRunningProgressView.addSubviews(myRunningLevelLavel, myRunningProgressBar, + myRunnigProgressPercentLabel) + + myRunningLevelLavel.snp.makeConstraints { make in + make.top.equalToSuperview() + make.leading.equalToSuperview().offset(1) + } + + myRunningProgressBar.snp.makeConstraints { make in + make.top.equalTo(myRunningLevelLavel.snp.bottom).offset(6) + make.leading.trailing.equalToSuperview() + make.height.equalTo(11) + } + + myRunnigProgressPercentLabel.snp.makeConstraints { make in + make.bottom.equalToSuperview() + make.trailing.equalToSuperview() + } } } From 24d25d8a2cd4c90fb00a05f8029a7e4e38b966a4 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 16:45:38 +0900 Subject: [PATCH 5/9] =?UTF-8?q?[Feat]=20#11=20-=20makeInfoView=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=83=9D=EC=84=B1=20=EB=B0=8F=20=EC=A0=84=EC=B2=B4?= =?UTF-8?q?=20UI=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Global/Literal/ColorLiterals.swift | 4 + .../Presentation/MyPage/VC/MyPageVC.swift | 93 ++++++++++++++++++- 2 files changed, 96 insertions(+), 1 deletion(-) diff --git a/Runnect-iOS/Runnect-iOS/Global/Literal/ColorLiterals.swift b/Runnect-iOS/Runnect-iOS/Global/Literal/ColorLiterals.swift index 0fc2614a..dedf2a48 100644 --- a/Runnect-iOS/Runnect-iOS/Global/Literal/ColorLiterals.swift +++ b/Runnect-iOS/Runnect-iOS/Global/Literal/ColorLiterals.swift @@ -28,6 +28,10 @@ extension UIColor { return UIColor(hex: "#ECECEC") } + static var g5: UIColor { + return UIColor(hex: "#F3F3F3") + } + static var m1: UIColor { return UIColor(hex: "#593EEC") } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index a92f1066..2586b37f 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -16,6 +16,9 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { private lazy var navibar = CustomNavigationBar(self, type: .title).setTitle("마이페이지") private let myProfileView = UIView() private let myRunningProgressView = UIView() + private let firstDivideView = UIView() + private let secondDivideView = UIView() + private let thirdDivideView = UIView() private let myProfileImage = UIImageView().then { $0.image = ImageLiterals.imgStampR2 @@ -61,7 +64,13 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { attributedString.append(NSAttributedString(string: " /100", attributes: [.font: UIFont.b5, .foregroundColor: UIColor.g2])) $0.attributedText = attributedString } + + private lazy var goalRewardInfoView = makeInfoView(title: "목표 보상") + private lazy var activityRecordInfoView = makeInfoView(title: "활동 기록") + private lazy var uploadedCourseInfoView = makeInfoView(title: "업로드한 코스") + // MARK: - View Life Cycle + override func viewDidLoad() { super.viewDidLoad() setNavigationBar() @@ -74,6 +83,47 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { } } +// MARK: - Methods +extension MyPageVC { + private func makeInfoView(title: String) -> UIView { + let containerView = UIView() + let icStar = UIImageView().then { + $0.image = ImageLiterals.icStar + } + + let label = UILabel().then { + $0.text = title + $0.textColor = .g1 + $0.font = .b2 + } + + let icArrowRight = UIImageView().then { + $0.image = ImageLiterals.icArrowRight + } + + containerView.addSubviews(icStar, label, icArrowRight) + + icStar.snp.makeConstraints { make in + make.top.equalToSuperview().offset(22) + make.leading.equalToSuperview().offset(17) + make.width.equalTo(14) + make.height.equalTo(14) + } + + label.snp.makeConstraints { make in + make.top.equalToSuperview().offset(21) + make.leading.equalTo(icStar.snp.trailing).offset(8) + } + + icArrowRight.snp.makeConstraints { make in + make.top.equalToSuperview().offset(18) + make.trailing.equalToSuperview().inset(8) + } + + return containerView + } +} + // MARK: - UI & Layout extension MyPageVC { @@ -92,10 +142,15 @@ extension MyPageVC { private func setUI() { view.backgroundColor = .white myProfileView.backgroundColor = .m3 + firstDivideView.backgroundColor = .g5 + secondDivideView.backgroundColor = .g4 + thirdDivideView.backgroundColor = .g4 } private func setLayout() { - view.addSubviews(myProfileView, myRunningProgressView) + view.addSubviews(myProfileView, myRunningProgressView, firstDivideView, + goalRewardInfoView, secondDivideView, activityRecordInfoView, + thirdDivideView, uploadedCourseInfoView) myProfileView.snp.makeConstraints { make in make.top.equalTo(navibar.snp.bottom).offset(6) @@ -148,5 +203,41 @@ extension MyPageVC { make.bottom.equalToSuperview() make.trailing.equalToSuperview() } + + firstDivideView.snp.makeConstraints { make in + make.top.equalTo(myRunningProgressView.snp.bottom).offset(34) + make.leading.trailing.equalToSuperview() + make.height.equalTo(10) + } + + goalRewardInfoView.snp.makeConstraints { make in + make.top.equalTo(firstDivideView.snp.bottom) + make.leading.trailing.equalToSuperview() + make.height.equalTo(60) + } + + secondDivideView.snp.makeConstraints { make in + make.top.equalTo(goalRewardInfoView.snp.bottom).offset(1) + make.leading.trailing.equalToSuperview() + make.height.equalTo(0.5) + } + + activityRecordInfoView.snp.makeConstraints { make in + make.top.equalTo(secondDivideView.snp.bottom) + make.leading.trailing.equalToSuperview() + make.height.equalTo(60) + } + + thirdDivideView.snp.makeConstraints { make in + make.top.equalTo(activityRecordInfoView.snp.bottom).offset(1) + make.leading.trailing.equalToSuperview() + make.height.equalTo(0.5) + } + + uploadedCourseInfoView.snp.makeConstraints { make in + make.top.equalTo(thirdDivideView.snp.bottom) + make.leading.trailing.equalToSuperview() + make.height.equalTo(60) + } } } From 6c863df27f5dae9ca4f36953eaac272709a3a932 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 16:50:04 +0900 Subject: [PATCH 6/9] =?UTF-8?q?[Feat]=20#11=20-=20InfoVC=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runnect-iOS.xcodeproj/project.pbxproj | 20 +++++++++++++ .../VC/InfoVC/ActivityRecordInfoVC.swift | 29 +++++++++++++++++++ .../MyPage/VC/InfoVC/GoalRewardInfoVC.swift | 29 +++++++++++++++++++ .../VC/InfoVC/UploadedCourseInfoVC.swift | 29 +++++++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift create mode 100644 Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift create mode 100644 Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift diff --git a/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj b/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj index daad92f4..818d63f0 100644 --- a/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj +++ b/Runnect-iOS/Runnect-iOS.xcodeproj/project.pbxproj @@ -8,6 +8,9 @@ /* Begin PBXBuildFile section */ 0AEBD608F3973389E8E1C6D6 /* Pods_Runnect_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 015778D02D5CDE0838284CD7 /* Pods_Runnect_iOS.framework */; }; + A3BC2F2B2962C3D500198261 /* GoalRewardInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3BC2F2A2962C3D500198261 /* GoalRewardInfoVC.swift */; }; + A3BC2F2D2962C3F200198261 /* ActivityRecordInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3BC2F2C2962C3F200198261 /* ActivityRecordInfoVC.swift */; }; + A3BC2F2F2962C40A00198261 /* UploadedCourseInfoVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3BC2F2E2962C40A00198261 /* UploadedCourseInfoVC.swift */; }; CE17F02D2961BBA100E1DED0 /* ColorLiterals.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE17F02C2961BBA100E1DED0 /* ColorLiterals.swift */; }; CE17F0332961BEF800E1DED0 /* Pretendard-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = CE17F02F2961BEF800E1DED0 /* Pretendard-Medium.otf */; }; CE17F0342961BEF800E1DED0 /* Pretendard-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = CE17F0302961BEF800E1DED0 /* Pretendard-Bold.otf */; }; @@ -75,6 +78,9 @@ /* Begin PBXFileReference section */ 015778D02D5CDE0838284CD7 /* Pods_Runnect_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runnect_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3C3033C911343B5C57EB68E7 /* Pods-Runnect-iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runnect-iOS.debug.xcconfig"; path = "Target Support Files/Pods-Runnect-iOS/Pods-Runnect-iOS.debug.xcconfig"; sourceTree = ""; }; + A3BC2F2A2962C3D500198261 /* GoalRewardInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GoalRewardInfoVC.swift; sourceTree = ""; }; + A3BC2F2C2962C3F200198261 /* ActivityRecordInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityRecordInfoVC.swift; sourceTree = ""; }; + A3BC2F2E2962C40A00198261 /* UploadedCourseInfoVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UploadedCourseInfoVC.swift; sourceTree = ""; }; CE17F02C2961BBA100E1DED0 /* ColorLiterals.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorLiterals.swift; sourceTree = ""; }; CE17F02F2961BEF800E1DED0 /* Pretendard-Medium.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Medium.otf"; sourceTree = ""; }; CE17F0302961BEF800E1DED0 /* Pretendard-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Bold.otf"; sourceTree = ""; }; @@ -182,6 +188,16 @@ name = Frameworks; sourceTree = ""; }; + A3BC2F292962C39F00198261 /* InfoVC */ = { + isa = PBXGroup; + children = ( + A3BC2F2A2962C3D500198261 /* GoalRewardInfoVC.swift */, + A3BC2F2C2962C3F200198261 /* ActivityRecordInfoVC.swift */, + A3BC2F2E2962C40A00198261 /* UploadedCourseInfoVC.swift */, + ); + path = InfoVC; + sourceTree = ""; + }; CE17F02E2961BEAE00E1DED0 /* Fonts */ = { isa = PBXGroup; children = ( @@ -297,6 +313,7 @@ CE17F0452961C3DD00E1DED0 /* VC */ = { isa = PBXGroup; children = ( + A3BC2F292962C39F00198261 /* InfoVC */, CEEC6B3F2961C55000D00E1E /* MyPageVC.swift */, ); path = VC; @@ -741,6 +758,7 @@ buildActionMask = 2147483647; files = ( CE665604295D91B100C64E12 /* makeAlert.swift in Sources */, + A3BC2F2F2962C40A00198261 /* UploadedCourseInfoVC.swift in Sources */, CE6655EA295D88B200C64E12 /* UITabBar+.swift in Sources */, CEC2A68729629B9B00160BF7 /* SignInVC.swift in Sources */, CE665602295D918000C64E12 /* JsonCoder.swift in Sources */, @@ -750,6 +768,7 @@ CE6655CD295D856300C64E12 /* KeyPathFindable.swift in Sources */, CE6655E4295D884600C64E12 /* UILabel+.swift in Sources */, CE6655FA295D90E000C64E12 /* applyShadow.swift in Sources */, + A3BC2F2B2962C3D500198261 /* GoalRewardInfoVC.swift in Sources */, CE665606295D91C500C64E12 /* makeVibrate.swift in Sources */, CE66560A295D924A00C64E12 /* Result+.swift in Sources */, CE66560E295D92A500C64E12 /* setStatusBarBackgroundColor.swift in Sources */, @@ -793,6 +812,7 @@ CE6655CA295D84DD00C64E12 /* UserDefaultKeyList.swift in Sources */, CE6655F2295D894D00C64E12 /* UIView+.swift in Sources */, CE665600295D915D00C64E12 /* getClassName.swift in Sources */, + A3BC2F2D2962C3F200198261 /* ActivityRecordInfoVC.swift in Sources */, CE6655FC295D90F500C64E12 /* calculatePastTime.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift new file mode 100644 index 00000000..10940e4e --- /dev/null +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift @@ -0,0 +1,29 @@ +// +// ActivityRecordInfoVC.swift +// Runnect-iOS +// +// Created by 몽이 누나 on 2023/01/02. +// + +import UIKit + +class ActivityRecordInfoVC: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift new file mode 100644 index 00000000..4ea891b5 --- /dev/null +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift @@ -0,0 +1,29 @@ +// +// GoalRewardInfoVC.swift +// Runnect-iOS +// +// Created by 몽이 누나 on 2023/01/02. +// + +import UIKit + +class GoalRewardInfoVC: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift new file mode 100644 index 00000000..ce7d20bc --- /dev/null +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift @@ -0,0 +1,29 @@ +// +// UploadedCourseInfoVC.swift +// Runnect-iOS +// +// Created by 몽이 누나 on 2023/01/02. +// + +import UIKit + +class UploadedCourseInfoVC: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + + // Do any additional setup after loading the view. + } + + + /* + // MARK: - Navigation + + // In a storyboard-based application, you will often want to do a little preparation before navigation + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { + // Get the new view controller using segue.destination. + // Pass the selected object to the new view controller. + } + */ + +} From 6e2789d783277b3663b583e06b2b97407f3023ea Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 17:10:33 +0900 Subject: [PATCH 7/9] =?UTF-8?q?[Feat]=20#11=20-=20InfoButton=EB=A7=88?= =?UTF-8?q?=EB=8B=A4=20=ED=84=B0=EC=B9=98=20=EC=9D=B8=ED=84=B0=EB=9E=99?= =?UTF-8?q?=EC=85=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VC/InfoVC/ActivityRecordInfoVC.swift | 16 ++---- .../MyPage/VC/InfoVC/GoalRewardInfoVC.swift | 16 ++---- .../VC/InfoVC/UploadedCourseInfoVC.swift | 16 ++---- .../Presentation/MyPage/VC/MyPageVC.swift | 49 +++++++++++++++++-- 4 files changed, 60 insertions(+), 37 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift index 10940e4e..033a85e7 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift @@ -11,19 +11,13 @@ class ActivityRecordInfoVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() - + setUI() // Do any additional setup after loading the view. } - - - /* - // MARK: - Navigation +} - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. +extension ActivityRecordInfoVC { + private func setUI() { + view.backgroundColor = .w1 } - */ - } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift index 4ea891b5..86689ec8 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift @@ -11,19 +11,13 @@ class GoalRewardInfoVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() - + setUI() // Do any additional setup after loading the view. } - - - /* - // MARK: - Navigation +} - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. +extension GoalRewardInfoVC { + private func setUI() { + view.backgroundColor = .w1 } - */ - } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift index ce7d20bc..a4ab6529 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift @@ -11,19 +11,13 @@ class UploadedCourseInfoVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() - + setUI() // Do any additional setup after loading the view. } - - - /* - // MARK: - Navigation +} - // In a storyboard-based application, you will often want to do a little preparation before navigation - override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Get the new view controller using segue.destination. - // Pass the selected object to the new view controller. +extension UploadedCourseInfoVC { + private func setUI() { + view.backgroundColor = .w1 } - */ - } diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index 2586b37f..02ee0d48 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -65,9 +65,20 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { $0.attributedText = attributedString } - private lazy var goalRewardInfoView = makeInfoView(title: "목표 보상") - private lazy var activityRecordInfoView = makeInfoView(title: "활동 기록") - private lazy var uploadedCourseInfoView = makeInfoView(title: "업로드한 코스") + private lazy var goalRewardInfoView = makeInfoView(title: "목표 보상").then { + let tap = UITapGestureRecognizer(target: self, action: #selector(self.touchUpGoalRewardInfoView)) + $0.addGestureRecognizer(tap) + } + + private lazy var activityRecordInfoView = makeInfoView(title: "활동 기록").then { + let tap = UITapGestureRecognizer(target: self, action: #selector(self.touchUpActivityRecordInfoView)) + $0.addGestureRecognizer(tap) + } + + private lazy var uploadedCourseInfoView = makeInfoView(title: "업로드한 코스").then { + let tap = UITapGestureRecognizer(target: self, action: #selector(self.uploadedCourseRecordInfoView)) + $0.addGestureRecognizer(tap) + } // MARK: - View Life Cycle @@ -78,6 +89,36 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { setLayout() } + private func pushtoGoalRewardInfoVC() { + let goalRewardInfoVC = GoalRewardInfoVC() + self.navigationController?.pushViewController(goalRewardInfoVC, animated: true) + } + + private func pushtoActivityRecordInfoVC() { + let activityRecordInfoVC = ActivityRecordInfoVC() + self.navigationController?.pushViewController(activityRecordInfoVC, animated: true) + } + + private func pushtoUploadedCourseInfoVC() { + let uploadedCourseInfoVC = ActivityRecordInfoVC() + self.navigationController?.pushViewController(uploadedCourseInfoVC, animated: true) + } + + @objc + private func touchUpGoalRewardInfoView() { + pushtoGoalRewardInfoVC() + } + + @objc + private func touchUpActivityRecordInfoView() { + pushtoActivityRecordInfoVC() + } + + @objc + private func uploadedCourseRecordInfoView() { + pushtoActivityRecordInfoVC() + } + func searchButtonDidTap(text: String) { print(text) } @@ -140,7 +181,7 @@ extension MyPageVC { } private func setUI() { - view.backgroundColor = .white + view.backgroundColor = .w1 myProfileView.backgroundColor = .m3 firstDivideView.backgroundColor = .g5 secondDivideView.backgroundColor = .g4 From d43d244d6384756abd47fed029bee700eb925d30 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 17:18:30 +0900 Subject: [PATCH 8/9] =?UTF-8?q?[Fix]=20#11=20-=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EB=B3=B4=EA=B8=B0=20=ED=8E=B8=ED=95=98=EA=B2=8C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Presentation/MyPage/VC/MyPageVC.swift | 103 ++++++++++-------- 1 file changed, 56 insertions(+), 47 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index 02ee0d48..3f6164b1 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -9,7 +9,7 @@ import UIKit import SnapKit import Then -final class MyPageVC: UIViewController, CustomNavigationBarDelegate { +final class MyPageVC: UIViewController { // MARK: - UI Components @@ -88,43 +88,10 @@ final class MyPageVC: UIViewController, CustomNavigationBarDelegate { setUI() setLayout() } - - private func pushtoGoalRewardInfoVC() { - let goalRewardInfoVC = GoalRewardInfoVC() - self.navigationController?.pushViewController(goalRewardInfoVC, animated: true) - } - - private func pushtoActivityRecordInfoVC() { - let activityRecordInfoVC = ActivityRecordInfoVC() - self.navigationController?.pushViewController(activityRecordInfoVC, animated: true) - } - - private func pushtoUploadedCourseInfoVC() { - let uploadedCourseInfoVC = ActivityRecordInfoVC() - self.navigationController?.pushViewController(uploadedCourseInfoVC, animated: true) - } - - @objc - private func touchUpGoalRewardInfoView() { - pushtoGoalRewardInfoVC() - } - - @objc - private func touchUpActivityRecordInfoView() { - pushtoActivityRecordInfoVC() - } - - @objc - private func uploadedCourseRecordInfoView() { - pushtoActivityRecordInfoVC() - } - - func searchButtonDidTap(text: String) { - print(text) - } } // MARK: - Methods + extension MyPageVC { private func makeInfoView(title: String) -> UIView { let containerView = UIView() @@ -163,15 +130,46 @@ extension MyPageVC { return containerView } + + private func pushtoGoalRewardInfoVC() { + let goalRewardInfoVC = GoalRewardInfoVC() + self.navigationController?.pushViewController(goalRewardInfoVC, animated: true) + } + + private func pushtoActivityRecordInfoVC() { + let activityRecordInfoVC = ActivityRecordInfoVC() + self.navigationController?.pushViewController(activityRecordInfoVC, animated: true) + } + + private func pushtoUploadedCourseInfoVC() { + let uploadedCourseInfoVC = ActivityRecordInfoVC() + self.navigationController?.pushViewController(uploadedCourseInfoVC, animated: true) + } } -// MARK: - UI & Layout +// MARK: - @objc Function extension MyPageVC { + @objc + private func touchUpGoalRewardInfoView() { + pushtoGoalRewardInfoVC() + } - private func setNavigationBar() { - navibar.delegate = self - + @objc + private func touchUpActivityRecordInfoView() { + pushtoActivityRecordInfoVC() + } + + @objc + private func uploadedCourseRecordInfoView() { + pushtoActivityRecordInfoVC() + } +} + +// MARK: - UI & Layout + +extension MyPageVC { + private func setNavigationBar() { view.addSubview(navibar) navibar.snp.makeConstraints { make in @@ -199,6 +197,19 @@ extension MyPageVC { make.height.equalTo(84) } + setMyProfileLayout() + setRunningProgressLayout() + + firstDivideView.snp.makeConstraints { make in + make.top.equalTo(myRunningProgressView.snp.bottom).offset(34) + make.leading.trailing.equalToSuperview() + make.height.equalTo(10) + } + + setInfoButtonLayout() + } + + private func setMyProfileLayout() { myProfileView.addSubviews(myProfileImage, myProfileNameLabel, myProfileEditButton) myProfileImage.snp.makeConstraints { make in @@ -225,7 +236,9 @@ extension MyPageVC { make.leading.trailing.equalToSuperview().inset(16) make.height.equalTo(55) } - + } + + private func setRunningProgressLayout() { myRunningProgressView.addSubviews(myRunningLevelLavel, myRunningProgressBar, myRunnigProgressPercentLabel) @@ -244,13 +257,9 @@ extension MyPageVC { make.bottom.equalToSuperview() make.trailing.equalToSuperview() } - - firstDivideView.snp.makeConstraints { make in - make.top.equalTo(myRunningProgressView.snp.bottom).offset(34) - make.leading.trailing.equalToSuperview() - make.height.equalTo(10) - } - + } + + private func setInfoButtonLayout() { goalRewardInfoView.snp.makeConstraints { make in make.top.equalTo(firstDivideView.snp.bottom) make.leading.trailing.equalToSuperview() From c901ebb3b76a256cc4bc63aae05fd4f7bcbc8231 Mon Sep 17 00:00:00 2001 From: dlwogus0128 <79050615+dlwogus0128@users.noreply.github.com> Date: Mon, 2 Jan 2023 17:47:01 +0900 Subject: [PATCH 9/9] =?UTF-8?q?[Fix]=20#11=20-=20=EC=BD=94=EB=A9=98?= =?UTF-8?q?=ED=8A=B8=20=EB=B0=9B=EC=9D=80=20=EB=B6=80=EB=B6=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyPage/VC/InfoVC/ActivityRecordInfoVC.swift | 2 +- .../MyPage/VC/InfoVC/GoalRewardInfoVC.swift | 2 +- .../MyPage/VC/InfoVC/UploadedCourseInfoVC.swift | 2 +- .../Presentation/MyPage/VC/MyPageVC.swift | 14 +++++++------- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift index 033a85e7..a51dbc40 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/ActivityRecordInfoVC.swift @@ -7,7 +7,7 @@ import UIKit -class ActivityRecordInfoVC: UIViewController { +final class ActivityRecordInfoVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift index 86689ec8..6922d4dc 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/GoalRewardInfoVC.swift @@ -7,7 +7,7 @@ import UIKit -class GoalRewardInfoVC: UIViewController { +final class GoalRewardInfoVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift index a4ab6529..fec5bd0c 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/InfoVC/UploadedCourseInfoVC.swift @@ -7,7 +7,7 @@ import UIKit -class UploadedCourseInfoVC: UIViewController { +final class UploadedCourseInfoVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() diff --git a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift index 3f6164b1..03b13596 100644 --- a/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift +++ b/Runnect-iOS/Runnect-iOS/Presentation/MyPage/VC/MyPageVC.swift @@ -131,17 +131,17 @@ extension MyPageVC { return containerView } - private func pushtoGoalRewardInfoVC() { + private func pushToGoalRewardInfoVC() { let goalRewardInfoVC = GoalRewardInfoVC() self.navigationController?.pushViewController(goalRewardInfoVC, animated: true) } - private func pushtoActivityRecordInfoVC() { + private func pushToActivityRecordInfoVC() { let activityRecordInfoVC = ActivityRecordInfoVC() self.navigationController?.pushViewController(activityRecordInfoVC, animated: true) } - private func pushtoUploadedCourseInfoVC() { + private func pushToUploadedCourseInfoVC() { let uploadedCourseInfoVC = ActivityRecordInfoVC() self.navigationController?.pushViewController(uploadedCourseInfoVC, animated: true) } @@ -152,24 +152,24 @@ extension MyPageVC { extension MyPageVC { @objc private func touchUpGoalRewardInfoView() { - pushtoGoalRewardInfoVC() + pushToGoalRewardInfoVC() } @objc private func touchUpActivityRecordInfoView() { - pushtoActivityRecordInfoVC() + pushToActivityRecordInfoVC() } @objc private func uploadedCourseRecordInfoView() { - pushtoActivityRecordInfoVC() + pushToActivityRecordInfoVC() } } // MARK: - UI & Layout extension MyPageVC { - private func setNavigationBar() { + private func setNavigationBar() { view.addSubview(navibar) navibar.snp.makeConstraints { make in