별자리 찾기 - 1

박인준·2019년 12월 9일
0

PersonalProject

목록 보기
1/1

별자리 찾기 프로젝트를 만들어 보려고 합니다.

기본적인 UI구성부터 생일을 받아 별자리를 반환하는 프로젝트로서 간단하지만 TextField 데이터 전달 및 Alert에서 생기는 상황들을 파악할 수 있을 것 같아 시작하게 되었습니다.

UI 구성은 다음과 같이 구성해 보았습니다.

기본적인 정보로 이름을 입력 받아 뒤에 나오는 ViewController에서 계속 사용할 예정입니다.

이름을 입력 한 후 StartButton을 누르면 다음 ViewController로 넘어가게 되는데 이부분에서 다음과 같은 기능을 추가 하였습니다.

이름을 입력한 후 StartButton을 누르면 다음과 같은 Alert이 나오게 됩니다.

네를 누르면 다음 화면으로 넘어가게 됩니다.

여기서 이름을 입력하지 않고 StartButton을 누르게 되면

이름입력을 유도하는 Alert을 띄웠습니다.

이 과정에서 생긴 어려운 상황을 설명하고자 합니다.

기본적인 UI구성으론 아직 AutoLayOut을 배우지 않아 Layer, Button, TextField의 자리를 직접 지정해 주었으며 대신 크기나 위치는 view크기에 따라 변하도록 설정하였습니다.

아직 UI를 코드로 만드는데 익숙하지 않아 굉장히 복작해 보이지만 조금씩 틀을 잡아갈 계획입니다.

두번째 화면으로 넘어가기 전 겪었던 어려움은 TextField에 이름을 입력하였을 때만 화면이 넘어가도록 하려 하였습니다.

그래서 StartButton을 눌렀을때 확인 할 것이
1) 이름을 입력하였는가?
2) 이름을 맞는지 확인할 수 있는가?
3) 이름을 입력하지 않았는데 확인 가능한가?
4) 다시 입력을 유도할 수 있는가?
5) 이름을 입력하였을고 확인을 눌렀을때 다음 화면으로 넘어가는가?
였습니다.

1번 과제는 TextField가 Optional로 데이터를 반환할 수 있기에 데이터를 넘겨줄 때 안전하게 binding 시켰습니다.

2번 과제는 AlertAction을 호출하면 쉽게 해결 되지만 다음에 나오는 이름을 입력하지 않았을때와 충돌되는 상황이 있었습니다.
이름을 입력하지 않았는데 다음화면으로 넘어가게 되면 원하는 상황을 만들지 못하기에 상황에 맞는 코드입력에 고심하였습니다.

이름이 입력되지 않았을땐 재입력을 요구하며 입력이 제대로 되었을땐 확인을 한 후 다음으로 넘어가도록 조정하였습니다.


(실패한 코드)

단순히 TextField에 값이 입력되었는가에만 집중하여 다음화면으로 넘어가지 못하거나 이름을 입력하지 않았음에도 넘어가는 상황이었으나 gurad문 안에 다음화면으로 넘어가는 코드를 넣음으로 해결하게 되었습니다.

앞으로 이어서 생일을 입력받아 별자리를 반환하는 프로젝트 완성해보려 합니다!

profile
iOS 개발자가 되기 위해

0개의 댓글