상세 컨텐츠

본문 제목

[Project 1 - 4]Nflix 프로젝트 조건 추가

IOS/프로젝트

by 카키IOS 2022. 7. 17. 21:02

본문

Point.  회원가입 조건

-ID TextField는 무조건 값이 있어야함(ID 필수 입력)

-PW TextField는 6글자 이상의 텍스트가 입력되어야 하며, 무조건 값이 있어야함(6글자 이상의 PW)

-추천인 코드는 숫자로만 입력되어야함

-회원가입 버튼을 누르면 위 세가지 조건을 만족하면 다음 뷰를 띄워주고, 만족하지 못하면 ID, PW,Recommender Code TextField의 Placeholder 색이 빨간색으로 바뀌고 Alert를 띄워 만족되지않은 조건을 알려준다


//뷰 컨트롤러 전환 함수
func nextViewController() {
//if let signUp = self.storyboard?.instantiateViewController(withIdentifier: "nextView") as? NextViewViewController {
//present(signUp, animated: true, completion: nil) //show타입

    guard let nextVC = self.storyboard?.instantiateViewController(identifier: "nextView") else {return}
    self.navigationController?.pushViewController(nextVC, animated: true) //push타입
}
    
				.
				.
				.
				.
                
    //회원가입 버튼 클릭 이벤트
    @IBAction func signUpButtonClicked(_ sender: UIButton) {
        //ID 조건을 만족하지 못하면 Alert으로 경고문 표시 -> addAction
        let alertID = UIAlertController(title: "경고", message: "ID는 필수적으로 입력해야됩니다.", preferredStyle: UIAlertController.Style.alert)
        
        //PW 조건을 만족하지 못하면 Alert으로 경고문 표시 -> addAction
        let alertPW = UIAlertController(title: "경고", message: "PW는 필수적으로 입력해야됩니다.", preferredStyle: UIAlertController.Style.alert)
        
        let okAction = UIAlertAction(title: "OK", style: .default) { (action) in} //Alert에 OK옵션 추가
        alertID.addAction(okAction) //ID Alert
        alertPW.addAction(okAction) //PW Alert
        
        //ID텍스트 필드에 아무런 텍스트가 입력이 안될시
        guard userTextFieldCollection[0].text?.isEmpty == false else{
            //ID텍스트필드 붉은색 Placeholder로 경고 표시
            userTextFieldCollection[0].attributedPlaceholder = NSAttributedString(string: "ID는 필수적으로 입력해야 합니다.", attributes: [NSAttributedString.Key.foregroundColor : UIColor.red])
            //ID텍스트 필드 조건이 만족하지 않으면 Alert에 경고문 표시
            return present(alertID, animated: false, completion: nil)
        }
        
        //PW텍스트 필드에 6글자 이상의 텍스트 입력을 안할시
        guard userTextFieldCollection[1].text!.count >= 6 else {
            //PW텍스트필드 붉은색 Placeholder로 경고 표시
            userTextFieldCollection[1].attributedPlaceholder = NSAttributedString(string: "PW는 6자리 이상으로 입력하셔야 됩니다.", attributes: [NSAttributedString.Key.foregroundColor : UIColor.red])
            //PW텍스트 필드 조건이 만족하지 않으면 Alert에 경고문 표시
            return present(alertPW, animated: false, completion: nil)
        }
        
        
        //위의 모든 조건을 만족하면 push방식으로 뷰 컨트롤러 전환
        nextViewController()
    }

주의사항.

guard let nextVC = self.storyboard?.instantiateViewController(identifier: "nextView") else {return}

.instantiateViewController() 함수는 iOS13.0 이상에서 사용 가능하다.

 

[출처:애플 개발자 페이지]

https://developer.apple.com/documentation/uikit/uistoryboard/3213989-instantiateviewcontroller

 

Apple Developer Documentation

 

developer.apple.com


 

결과

(feat.Study With "SeSAC-조우석")

<<< 우석님 GitHub링크

728x90
반응형

'IOS > 프로젝트' 카테고리의 다른 글

[App Store] 개발자 인생 첫 앱 출시  (2) 2022.10.01
iOS NewTro_Todo 개인정보 처리방침  (0) 2022.09.30
[Project 1 - 3]Nflix UI  (0) 2022.07.08
[Project 1 - 2]Nflix UI  (0) 2022.07.06
[Project 1 - 1]Nflix UI  (0) 2022.07.04

관련글 더보기