ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [맵모] 중간회고2 (240315)
    회고 2024. 3. 15. 00:34

     

    # 😟 경험한 이슈

    다른 화면으로 푸시될 때 탭바가 보이지않게 하기 위해서 TabBarController에 NavigationController를 감싼 상태로 만들었다. 

     

    하지만 TabBarController를 NavigationController의 rootViewController로 설정할 경우에,

    1. 첫번째 탭인 지도 화면에서는 navigation 타이틀이 없어야 하지만

    2. 두번째, 세번째 탭인 리스트 화면, 히스토리 화면에서는 navigation 타이틀이 있어야한다.

    -> 각 탭 화면마다 navigationController를 가져야 하지만 현재 하나의 NavigationController를 공유해서 쓰고 있기 때문에 하나의 타이틀로만 설정이 가능하다.

     

    해결 방법

    각 탭 화면마다 navigationController를 가지면서, 다른 화면으로 푸시될 때 탭바를 숨기는 방법으로 접근해볼 수 있지 않을까? 라는 생각이 들었다.

    찾아보니 실제로 관련 함수가 존재하였다.

    let vc = ContentVC()
    vc.hidesBottomBarWhenPushed = true
    self.navigationController?.pushViewController(vc, animated: true)

     

    hidesBottomBarWhenPushed라는 메서드를 true로 설정하여 화면이 Push 되었을 때 하단 바가 보이지않게 할 수 있도록 하여

    이 문제를 해결할 수 있었다.

     

     

    # 💬 고민되는 지점

    전 날 고민했던 "같은 장소에 2개 이상의 기록이 추가될 경우"

    를 고려하여 테이블을 설계하고, 로직을 단계별로 정리하였다.

     

    해결 방법 및 로직

    1. 장소가 이미 Realm에 존재하는 지 확인
      1. 이미 존재할 경우
        1. Record를 생성한다.
        2. Place의 Records에 append한다.
      2. 존재하지 않을 경우
        1. Place를 생성한다.
        2. Record를 생성한다.
        3. Place의 Records에 append한다.

    Place와 Record은 고유하되, Place에 records라는 List 타입의 필드를 두어 Record를 저장하게 하였다.

    다음과 같이 테이블을 설계할 경우, 홈 화면의 지도에서 기록된 장소를 마크로 표시하고, 그 마크를 클릭했을 때

    해당 장소로 등록된 기록들을 리스트로 확인할 수 있기 때문이다.

     

     

     

    # 👩🏻‍💻 생각보다 덜 / 더 걸리는 작업

    생각보다 기록을 생성하는 작업이 얼마 걸리지 않았다.

    기록, 장소, 이미지를 Realm에 저장하는 데 각 30분씩 밖에 안걸렸다.

     

    생성하려는 Realm 모델(테이블)의 구조를 사전에 꼼꼼히 설계한 후 구현을 시작해서 그런 것이라고 생각한다.

    구현과 동시에 테이블을 설계하면 오히려 머릿속에서 정리가 되지않아 결국 여러 번 수정을 했을 것 같다.

     

    Realm과 관련된 기능을 구현할 때에는 고려되는 요소를 리스트로 정리한 다음 그 요소들에 대해 이슈가 발생하지 않도록

    가장 먼저 테이블 설계와 로직을 정리를 하고, 그 다음 단계에서 구현을 시작하는 것이 훨씬 더 효율적이다 라는 것을 깨달았다!

     

    '회고' 카테고리의 다른 글

    [맵모] 중간 회고6 (240320)  (0) 2024.03.20
    [맵모] 중간회고5 (240319)  (0) 2024.03.19
    [맵모] 중간회고4 (240318)  (0) 2024.03.18
    [맵모] 중간회고3 (240316)  (0) 2024.03.16
    [맵모] 중간 회고1 (240314)  (0) 2024.03.14
Designed by Tistory.