Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEAT] 2차과제 구현 완료#2 #3

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
176 changes: 161 additions & 15 deletions First_Seminar.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,43 +7,144 @@
objects = {

/* Begin PBXBuildFile section */
02BE7490B9017B99796A3C5E /* Pods_First_Seminar.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB8BE4C14222BFF20A78A041 /* Pods_First_Seminar.framework */; };
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

신델리님 반갑습니다

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

신델리님 반갑습니다

네~ 전 신델리입니다~

09587B1A28F842BC000E27F4 /* HomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09587B1928F842BC000E27F4 /* HomeViewController.swift */; };
09587B1C28F84CCA000E27F4 /* ProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09587B1B28F84CCA000E27F4 /* ProfileViewController.swift */; };
09587B2528F87C30000E27F4 /* UIViewController+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09587B2428F87C30000E27F4 /* UIViewController+.swift */; };
D581500D28EBCB640079FFC0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D581500C28EBCB640079FFC0 /* AppDelegate.swift */; };
D581500F28EBCB640079FFC0 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D581500E28EBCB640079FFC0 /* SceneDelegate.swift */; };
D581501128EBCB640079FFC0 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D581501028EBCB640079FFC0 /* ViewController.swift */; };
D581501128EBCB640079FFC0 /* SignInViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D581501028EBCB640079FFC0 /* SignInViewController.swift */; };
D581501628EBCB660079FFC0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D581501528EBCB660079FFC0 /* Assets.xcassets */; };
D581501928EBCB660079FFC0 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D581501728EBCB660079FFC0 /* LaunchScreen.storyboard */; };
D581502128EC02F10079FFC0 /* SecondViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D581502028EC02F10079FFC0 /* SecondViewController.swift */; };
D581502328EC03800079FFC0 /* ThirdViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D581502228EC03800079FFC0 /* ThirdViewController.swift */; };
D581502128EC02F10079FFC0 /* SignUpViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D581502028EC02F10079FFC0 /* SignUpViewController.swift */; };
D581502328EC03800079FFC0 /* WelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D581502228EC03800079FFC0 /* WelcomeViewController.swift */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
09587B1928F842BC000E27F4 /* HomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeViewController.swift; sourceTree = "<group>"; };
09587B1B28F84CCA000E27F4 /* ProfileViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileViewController.swift; sourceTree = "<group>"; };
09587B2428F87C30000E27F4 /* UIViewController+.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIViewController+.swift"; sourceTree = "<group>"; };
33F266797850FD35D85AD1C3 /* Pods-First_Seminar.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-First_Seminar.release.xcconfig"; path = "Target Support Files/Pods-First_Seminar/Pods-First_Seminar.release.xcconfig"; sourceTree = "<group>"; };
D323308309434ADBE28EA0C8 /* Pods-First_Seminar.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-First_Seminar.debug.xcconfig"; path = "Target Support Files/Pods-First_Seminar/Pods-First_Seminar.debug.xcconfig"; sourceTree = "<group>"; };
D581500928EBCB640079FFC0 /* First_Seminar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = First_Seminar.app; sourceTree = BUILT_PRODUCTS_DIR; };
D581500C28EBCB640079FFC0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
D581500E28EBCB640079FFC0 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
D581501028EBCB640079FFC0 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
D581501028EBCB640079FFC0 /* SignInViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignInViewController.swift; sourceTree = "<group>"; };
D581501528EBCB660079FFC0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
D581501828EBCB660079FFC0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
D581501A28EBCB660079FFC0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
D581502028EC02F10079FFC0 /* SecondViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondViewController.swift; sourceTree = "<group>"; };
D581502228EC03800079FFC0 /* ThirdViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThirdViewController.swift; sourceTree = "<group>"; };
D581502028EC02F10079FFC0 /* SignUpViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignUpViewController.swift; sourceTree = "<group>"; };
D581502228EC03800079FFC0 /* WelcomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeViewController.swift; sourceTree = "<group>"; };
EB8BE4C14222BFF20A78A041 /* Pods_First_Seminar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_First_Seminar.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
D581500628EBCB640079FFC0 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
02BE7490B9017B99796A3C5E /* Pods_First_Seminar.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
09587B1D28F87033000E27F4 /* Home */ = {
isa = PBXGroup;
children = (
09587B1928F842BC000E27F4 /* HomeViewController.swift */,
);
path = Home;
sourceTree = "<group>";
};
09587B1F28F87049000E27F4 /* Delegate */ = {
isa = PBXGroup;
children = (
D581500C28EBCB640079FFC0 /* AppDelegate.swift */,
D581500E28EBCB640079FFC0 /* SceneDelegate.swift */,
);
path = Delegate;
sourceTree = "<group>";
};
09587B2028F87059000E27F4 /* Profile */ = {
isa = PBXGroup;
children = (
09587B1B28F84CCA000E27F4 /* ProfileViewController.swift */,
);
path = Profile;
sourceTree = "<group>";
};
09587B2128F87BE2000E27F4 /* Extension */ = {
isa = PBXGroup;
children = (
09587B2428F87C30000E27F4 /* UIViewController+.swift */,
);
path = Extension;
sourceTree = "<group>";
};
09587B2628F87D33000E27F4 /* Sign */ = {
isa = PBXGroup;
children = (
D581502028EC02F10079FFC0 /* SignUpViewController.swift */,
D581501028EBCB640079FFC0 /* SignInViewController.swift */,
D581502228EC03800079FFC0 /* WelcomeViewController.swift */,
);
path = Sign;
sourceTree = "<group>";
};
09587B2728F87D4D000E27F4 /* Resource */ = {
isa = PBXGroup;
children = (
D581501528EBCB660079FFC0 /* Assets.xcassets */,
);
path = Resource;
sourceTree = "<group>";
};
09587B2828F87D59000E27F4 /* Global */ = {
isa = PBXGroup;
children = (
09587B2728F87D4D000E27F4 /* Resource */,
09587B1F28F87049000E27F4 /* Delegate */,
09587B2128F87BE2000E27F4 /* Extension */,
);
path = Global;
sourceTree = "<group>";
};
09587B2928F87D6B000E27F4 /* Screen */ = {
isa = PBXGroup;
children = (
09587B2628F87D33000E27F4 /* Sign */,
09587B1D28F87033000E27F4 /* Home */,
09587B2028F87059000E27F4 /* Profile */,
);
path = Screen;
sourceTree = "<group>";
};
2C5DAF4EC6144554B08972D6 /* Pods */ = {
isa = PBXGroup;
children = (
D323308309434ADBE28EA0C8 /* Pods-First_Seminar.debug.xcconfig */,
33F266797850FD35D85AD1C3 /* Pods-First_Seminar.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
791C59E1A6BDB6604EA717C6 /* Frameworks */ = {
isa = PBXGroup;
children = (
EB8BE4C14222BFF20A78A041 /* Pods_First_Seminar.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
D581500028EBCB640079FFC0 = {
isa = PBXGroup;
children = (
D581500B28EBCB640079FFC0 /* First_Seminar */,
D581500A28EBCB640079FFC0 /* Products */,
2C5DAF4EC6144554B08972D6 /* Pods */,
791C59E1A6BDB6604EA717C6 /* Frameworks */,
);
sourceTree = "<group>";
};
Expand All @@ -58,12 +159,8 @@
D581500B28EBCB640079FFC0 /* First_Seminar */ = {
isa = PBXGroup;
children = (
D581500C28EBCB640079FFC0 /* AppDelegate.swift */,
D581500E28EBCB640079FFC0 /* SceneDelegate.swift */,
D581501028EBCB640079FFC0 /* ViewController.swift */,
D581502028EC02F10079FFC0 /* SecondViewController.swift */,
D581502228EC03800079FFC0 /* ThirdViewController.swift */,
D581501528EBCB660079FFC0 /* Assets.xcassets */,
09587B2828F87D59000E27F4 /* Global */,
09587B2928F87D6B000E27F4 /* Screen */,
D581501728EBCB660079FFC0 /* LaunchScreen.storyboard */,
D581501A28EBCB660079FFC0 /* Info.plist */,
);
Expand All @@ -77,9 +174,11 @@
isa = PBXNativeTarget;
buildConfigurationList = D581501D28EBCB660079FFC0 /* Build configuration list for PBXNativeTarget "First_Seminar" */;
buildPhases = (
4CEE16747FD56771AC8DDF87 /* [CP] Check Pods Manifest.lock */,
D581500528EBCB640079FFC0 /* Sources */,
D581500628EBCB640079FFC0 /* Frameworks */,
D581500728EBCB640079FFC0 /* Resources */,
9BEA2004F8810A039B0CAE03 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
Expand Down Expand Up @@ -135,16 +234,61 @@
};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
4CEE16747FD56771AC8DDF87 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-First_Seminar-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
9BEA2004F8810A039B0CAE03 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-First_Seminar/Pods-First_Seminar-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-First_Seminar/Pods-First_Seminar-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-First_Seminar/Pods-First_Seminar-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
D581500528EBCB640079FFC0 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
D581502128EC02F10079FFC0 /* SecondViewController.swift in Sources */,
D581501128EBCB640079FFC0 /* ViewController.swift in Sources */,
D581502328EC03800079FFC0 /* ThirdViewController.swift in Sources */,
D581502128EC02F10079FFC0 /* SignUpViewController.swift in Sources */,
D581501128EBCB640079FFC0 /* SignInViewController.swift in Sources */,
09587B2528F87C30000E27F4 /* UIViewController+.swift in Sources */,
D581502328EC03800079FFC0 /* WelcomeViewController.swift in Sources */,
D581500D28EBCB640079FFC0 /* AppDelegate.swift in Sources */,
09587B1C28F84CCA000E27F4 /* ProfileViewController.swift in Sources */,
D581500F28EBCB640079FFC0 /* SceneDelegate.swift in Sources */,
09587B1A28F842BC000E27F4 /* HomeViewController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -278,6 +422,7 @@
};
D581501E28EBCB660079FFC0 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D323308309434ADBE28EA0C8 /* Pods-First_Seminar.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
Expand Down Expand Up @@ -305,6 +450,7 @@
};
D581501F28EBCB660079FFC0 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 33F266797850FD35D85AD1C3 /* Pods-First_Seminar.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
Expand Down
10 changes: 10 additions & 0 deletions First_Seminar.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,17 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {


func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }

if let windowScene = scene as? UIWindowScene {

let window = UIWindow(windowScene: windowScene)
window.overrideUserInterfaceStyle = UIUserInterfaceStyle.light

let rootVC = ViewController()
let rootVC = SignInViewController()

let navigationController = UINavigationController(rootViewController: rootVC)

window.rootViewController = navigationController
// window.rootViewController = rootVC
window.makeKeyAndVisible()
self.window = window
}
Expand Down
18 changes: 18 additions & 0 deletions First_Seminar/Global/Extension/UIViewController+.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// UIViewController+.swift
// First_Seminar
//
// Created by JEONGEUN KIM on 2022/10/14.
//

import Foundation
import UIKit
Comment on lines +8 to +9

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UIKit에 Foundation이 기본적으로 import 되어 있어 두 개를 같이 쓸 필요가 없을 것 같습니다~~
간단히 찾아 봤는데

UIKit은 App과 같이 user interface를 사용할 때 import 해야 하는 것이다.
문자, 문자열 등 기본 객체나 Date 같은 것만 사용한다면 Foundation만 import해도 된다.

고 하네요! 출처: https://socialinnovator.tistory.com/6


extension UIViewController{
func changeRootViewController(_ viewControllerToPresent: UIViewController) {
if let window = UIApplication.shared.windows.first {
window.rootViewController = viewControllerToPresent
UIView.transition(with: window, duration: 0.0, options: .transitionCrossDissolve, animations: nil)
}
}
Comment on lines +11 to +17
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

익스텐션으로 빼준 거 정말 좋네요. .👍

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

누가 알려줬는지 모르겠지만 정말 환상적이네요 ^,^

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

너무 잘하셨네요~~ 👍🏻

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"provides-namespace" : true
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "profile_editImg.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "[email protected]",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "[email protected]",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"images" : [
{
"filename" : "profileStoryImg.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "[email protected]",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "[email protected]",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading