//

//  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

}














+ Recent posts