//
// AppDelegate.swift
// LoginFlow
//
// Created by stayfoolish on 06/10/2018.
// Copyright © 2018 stayfoolish. All rights reserved.
//
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions:
[UIApplicationLaunchOptionsKey: Any]? = nil) -> Bool {
print("애플리케이션이 실행되기 직전")
return true
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
print("애플리케이션이 실행된 직후")
return true
}
func applicationWillResignActive(_ application: UIApplication) {
print("애플리케이션이 비활성화 될 예정")
}
func applicationDidEnterBackground(_ application: UIApplication) {
print("애플리케이션이 백그라운드로 진입함")
}
func applicationWillEnterForeground(_ application: UIApplication) {
print("애플리케이션이 백그라운드에서 벗어날 예정")
}
func applicationDidBecomeActive(_ application: UIApplication) {
print("애플리케이션이 활성화 됨")
}
func applicationWillTerminate(_ application: UIApplication) {
print("애플리케이션이 종료되기 직전 ")
}
}
//
// LoginViewController.swift
// LoginFlow
//
// Created by stayfoolish on 07/10/2018.
// Copyright © 2018 stayfoolish. All rights reserved.
//
import UIKit
class LoginViewController: UIViewController {
@IBOutlet weak var emailField: UITextField!
@IBOutlet weak var passwordField: UITextField!
@IBAction func touchUpLoginButton(_ sender: UIButton){
guard let email: String = self.emailField.text,
email.isEmpty == false else {
self.showAlert(message: "이메일을 입력해주세요", control: self.emailField)
return
}
guard let password: String = self.passwordField.text,
password.isEmpty == false else {
self.showAlert(message: "패스워드를 입력해주세요", control: self.passwordField)
return
}
self.performSegue(withIdentifier: "ShowInfo", sender: sender)
}
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.title = "로그인"
print("LogingViewController 객체의 뷰가 메모리에 로드됨")
// Do any additional setup after loading the view.
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
print("LoginViewController 객체의 뷰가 나타날 예정")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("LoginViewController 객체의 뷰가 나타남")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("LoginViewController 객체의 뷰가 사라질 예정")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("LoginViewController 객체의 뷰가 사라짐")
}
private func showAlert(message: String, control toBeFirstResponder: UIControl?){
let alert: UIAlertController = UIAlertController(title: "알림", message: message, preferredStyle: UIAlertControllerStyle.alert)
let okAction: UIAlertAction = UIAlertAction(title: "입력하기", style: UIAlertActionStyle.default){ [weak toBeFirstResponder] (action: UIAlertAction) in toBeFirstResponder?.becomeFirstResponder()
}
let cancelAction: UIAlertAction = UIAlertAction(title: "취소", style: UIAlertActionStyle.cancel, handler: nil)
alert.addAction(okAction)
alert.addAction(cancelAction)
self.present(alert, animated: true){
print("얼럿 화면에 보여짐")
}
}
// 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.destinationViewController.
// Pass the selected object to the new view controller.
guard let email: String = self.emailField.text,
let password: String = self.passwordField.text else {
return
}
guard let id: String = segue.identifier else { return }
guard id == "ShowInfo" else { return }
guard let infoViewController = segue.destination as? InfoViewController else {
return
}
infoViewController.loginInfo = LoginInfo(email: email, password: password)
}
}
//
// InfoViewController.swift
// LoginFlow
//
// Created by stayfoolish on 07/10/2018.
// Copyright © 2018 stayfoolish. All rights reserved.
//
import UIKit
class InfoViewController: UIViewController {
var loginInfo: LoginInfo?
override func viewDidLoad() {
super.viewDidLoad()
print("InfoViewController 객체의 뷰가 메모리에 로드됨")
// Do any additional setup after loading the view.
self.navigationItem.title = "로그인 정보"
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("InfoViewController 객체의 뷰가 나타날 예정")
self.navigationController?.setNavigationBarHidden(false, animated: true)
guard let info = self.loginInfo else {
return
}
print(info)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
print("InfoViewController 객체의 뷰가 나타남")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
print("InfoViewController 객체의 뷰가 사라질 예정")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
print("InfoViewController 객체의 뷰가 사라짐")
}
}
//
// LoginInfo.swift
// LoginFlow
//
// Created by stayfoolish on 07/10/2018.
// Copyright © 2018 stayfoolish. All rights reserved.
//
import Foundation
struct LoginInfo {
let email: String
let password: String
}
'Swift > 기초&문법' 카테고리의 다른 글
| 스위프트 오류처리 swift Error (0) | 2018.10.09 |
|---|---|
| 스위프트 성격유형검사 앱 swift DISCTest (0) | 2018.10.08 |
| 스위프트 반려동물 소개앱 swift CompanionAnimals (0) | 2018.10.06 |
| swift ColorPicker 스위프트 컬러피커 (0) | 2018.10.02 |
| 스위프트 익스텐션 swift extension (0) | 2018.10.01 |