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

TCA) BackButton을 눌렀을 때 이전 화면으로 돌아가게 구현 #4

Closed
MoSonLee opened this issue Apr 18, 2022 · 1 comment
Closed

Comments

@MoSonLee
Copy link
Owner

No description provided.

@MoSonLee
Copy link
Owner Author

MoSonLee commented Apr 18, 2022

목표: backbutton을 눌렸을 때 이전 화면으로 돌아가줘야한다.

  • 내가 처음 잘못 생각한것은 recordView에서 homeView로 돌아간다고 생각했다.

Mongsil의 계층 구조를 생각해보자

  • image

  • 위를 보면 알 수 있듯이 login을 하기전 상황만 배제하면 home과 record는 같은 계층임을 알 수 있다.

  • 그러므로 버튼이 눌렸을 때 homeView로 돌아가는 것이 아닌 단순히 recordView의 state를 해제해주어 이전 화면으로 돌려주는 것이다.
    image

    image

  • RecordCore쪽에선 action과 reducer에 생성을 해준다.(MainTabCore에서 pullback을 해줄 것이다 어차피)

  • 이전 화면 전환과는 다르게 현재 화면을 종료하고 이전 화면으로 돌아가주는 것 뿐이니 state에서 딱히 무엇을 선언해줄 필요는 없다.

  • MainTabAction에서 setBackToHome(Bool)을 선언해준다.

  • MainTabAction에서 child class인 recordAction을 선언해준다.

  • image

  • MainTabAction이 사용되므로 당연히 상위 클래스에서 pullback을 해줘야한다.

  • image

  • setBackToHome action에선 RecordButtonTapped(RecordView로 이동하는 버튼) 됐을 때 state에 recordView의 상태를 넣어준다.

  • recordView에서 backButton이 눌리면

    • image

    • setBackToHome의 값을 false로 바꿔준다. -> setBackToHome case에서 뭘해줬는지 생각해보자 -> state에 record를 넣어주었다 -> 이걸 false하면 recordView가 사라질 것이다.

  • 간단하게 생각하자 이건 화면을 이동시켜주는 것이 아니라 현재 화면의 state값을 false로 바꿔 취소해준다고 보면 된다.

@MoSonLee MoSonLee changed the title BackButton을 눌렀을 때 이전 화면으로 돌아가게 하는 코드 TCA) BackButton을 눌렀을 때 이전 화면으로 돌아가게 구현 Apr 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant