NavigationStack 뒤로가기

hyun·2025년 5월 22일
1

iOS

목록 보기
4/54

과제 제출 D-day..
마무리 작업을 하던 중에 이상한 일이 벌어졌다..!
왼쪽 위에 파란색 뒤로가기 버튼이 안 사라진다..!

NavigationStack을 사용하면 자동으로 왼쪽 위에 뒤로가기 버튼을 구현해주는데,
내가 따로 또 Button을 넣어줘서 이런 문제가 생긴 것 같았음
그래서 내가 만들었던 Button을 지우고 NavigationStack으로 왼쪽의 ThirdView랑 EntryDetailView에서 각각 뒤로가기 버튼이 뜨도록 구현하고자 했음

근데에ㅔ에에.......
EntryDetailView에서 뒤로가기 버튼이 두 개 뜨는 것이 아닌가...
그러니까 한 마디로, ThirdView에서는 뒤로가기 버튼이 하나로 잘 뜨는데
Card를 눌렀을 때 EntryDetailView에서는 뒤로가기 버튼이 두 개 뜨는 것이다. 감히 예상컨데,,, ThirdView의 버튼까지 뜬 것 같았다.
해결하려고

.navigationBarBackButtonHidden(true)

코드를 옮겨가며 적용을 해봤는데 문제는 나아지지 않았다...
그래서 그냥 NavigationStack을 썼을 때 생기는 버튼을 위의 코드로 지우고 버튼을 따로 만들어서
적용해주는 방식으로 해결하게 되었다.


그리고...!!!

위에서 부터 제목, 이미지 선택, 내용 입력 TextField인데
어째 TextColor가 이상한 듯 했다..
각각

.foregroundColor(.white)

이걸로 적용을 시켜줬는데도 안되지 모얌..
찾아봐도 뭐가 문제인지 모르겠어서 튜터님께 SOS..!!

튜터님께서 placeholder color 문법을 사용하면 해결할 수 있을 거라고 말씀해 주셨음 !

    var body: some View {
        TextField(
            "타이틀",
            text: $text,
            prompt: Text("prompt").foregroundColor(.purple)
        )
            .foregroundColor(.green)
        
//        PlaceholderTextField(
//            text: $text,
//            placeholder: "플레이스홀더",
//            placeholderColor: .purple
//        )
//        .foregroundColor(.green)
    }
출처: https://nsios.tistory.com/187 [NamS의 iOS일기:티스토리]

TextField("제목", text: $inputTitle)
    .foregroundStyle(.white)

원래는 이렇게 코드를 짰었는데
foregroundStyle은 삽입된 글자의 색을 지정하는 것이기 때문에 제목이라는 Text가 회색인 건 어쩌면 당연

TextField("", text: $inputTitle, prompt: Text("제목").foregroundStyle(.white))

이렇게 코드를 짜서
placeholder도 흰색, 입력값도 흰색으로 구현함

감격...........

저렇게 정보들을 다 입력하고 뒤로 나갔다 돌아왔을 때 정보가 다 지워져 있는 게 싫어서
삭제 버튼을 누르기 전에는 지워지지 않도록 구현하였고
로고 정렬도 완료했다!!

EntryDetailView의 Text도 검정색이라 너무 안 보여서 흰색으로 바꿔줌.
요주의 두 화면 완성

0개의 댓글