[SwiftUI] NavigationStack 에서 back 버튼 색상 변경하는 방법

2024. 11. 2. 08:57·[Programming Language]/[SwiftUI]

[머릿말]

NavigationStack을 사용하여 화면 전환을 구현할 때 상단에 기본적으로 back 버튼이 존재한다. 실제 존재하는 다른 앱들을 살펴보면 이 부분(상단바) 전체를 커스터마이징하여 사용하는 것 같다. 나는 일단 back 버튼의 색상만 기본 색상인 파란색에서 흰색으로 바꿔보았다.


1. tint(_:) 사용

import SwiftUI

struct ContentView: View {
    
    var body: some View {
        NavigationStack {
            List {
                Section("학과") {
                    NavigationLink("컴퓨터공학과", value: "컴퓨터공학과")
                    NavigationLink("간호학과", value: "간호학과")
                    NavigationLink("내거친생각과", value: "내거친생각과")
                    NavigationLink("불안한눈빛과", value: "불안한눈빛과")
                }
            }
            .navigationDestination(for: String.self) { major in
                Text(major)
                    .font(.largeTitle)
                    .fontWeight(.black)
            }
        }
        .tint(.green) // ❗️NavigationStack의 수정자로 tint 사용❗️
    }
    
}

위와 같은 간단한 예제를 만들어보았다. 위 예제처럼 NavigationStack에 tint 수정자를 적용하면 각 NavigationLink로 이동했을 때의 back 버튼 색상을 바꿀 수 있다.

green으로 설정했기 때문에 초록색이 적용된 것을 확인할 수 있다

 


대부분의 앱은 이 상단바 부분을 직접 만들어서 사용하는 것 같다. 핸드폰에 깔려있는 여러 앱을 실행해봤는데 대부분 상단바에 검색 버튼, 알림 버튼, 설정 버튼 등 다양한 요소가 추가되어 있었다.

 

이와 동일하게 나중에 나도 직접 커스터마이징한 상단바를 제작해봐야겠다...

 

끝!

저작자표시 비영리 (새창열림)

'[Programming Language] > [SwiftUI]' 카테고리의 다른 글

[SwiftUI] publishing changes from background threads is not allowed 원인, 해결 방법  (2) 2024.12.01
[SwiftUI] NavigationLink 파란색 오버레이 변경 방법  (0) 2024.11.03
[SwiftUI] Non-constant range: argument must be an integer literal  (1) 2024.11.01
[SwiftUI] 라이트 모드(Light mode) or 다크 모드(Dark mode) 설정 방법  (0) 2024.10.31
[SwiftUI] Invalid frame dimension (negative or non-finite) 오류  (0) 2024.10.30
'[Programming Language]/[SwiftUI]' 카테고리의 다른 글
  • [SwiftUI] publishing changes from background threads is not allowed 원인, 해결 방법
  • [SwiftUI] NavigationLink 파란색 오버레이 변경 방법
  • [SwiftUI] Non-constant range: argument must be an integer literal
  • [SwiftUI] 라이트 모드(Light mode) or 다크 모드(Dark mode) 설정 방법
Semincolon
Semincolon
It seems small, that semicolon is a big deal.
  • Semincolon
    Semincolon
    Semincolon
  • 전체
    오늘
    어제
    • 분류 전체보기 (133)
      • [Programming Language] (78)
        • [JSP] (6)
        • [Swift] (23)
        • [SwiftUI] (16)
        • [Python] (22)
        • [C언어] (6)
        • [Kotlin] (4)
        • [C#] (1)
      • [Frame Work] (5)
        • [Flutter] (4)
        • [Spring Boot] (1)
      • [Projects] (3)
        • [Android][Kotlin] 공유 캘린더(20.. (1)
        • [Unity] 인내의 숲(2024.03) (2)
      • [DB] (15)
        • - Oracle (15)
      • [Programmers] (25)
        • - SQL (25)
      • [ETC] (2)
      • Today's Learning (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Semincolon
[SwiftUI] NavigationStack 에서 back 버튼 색상 변경하는 방법
상단으로

티스토리툴바