iOS

[SwiftUI] NavigationLink를 이용해서 페이지 이동하기

ji_iin 2021. 8. 28. 20:49

처음에 버튼 이미지를 넣어놓고 이제 어떻게 페이지 이동하지?

고민하면서 구글링 한 결과, 버튼이 아닌 NavigationLink를 이용해야 한다.

페이지 이동이 한번만 될 뿐 아니라,

두세번 원하는 만큼 설정하면 계속 연결되어 구현 가능하다.

바로 코드로 설명 !!

 

 

 

< Main >

 

아이콘을 누르면 바로 해당 목적지의 뷰로 넘어가지만,

나는 NavigationLink안에 NavigationLink를 또 넣어

스택이 쌓이는 것처럼

화면에 들어가고 또 들어가게 구현해 보았다.

var body: some View {
        NavigationView(content: {
            VStack(spacing: 40) {
                NavigationLink(
                    destination: PickRamen()) {
                    Icons(actionText: "라면 클릭!", title: "라면 끓이기", image: "ramen") }
                
                NavigationLink(
                    destination: PickEggs()) {
                    Icons(actionText: "계란 클릭!", title: "계란 삶기", image: "fireeggs") }
            }.navigationTitle("선택하기")
        })

    }

 

 

< PickRamen >

 

앞 부분과 동일하게 destination 설정하고,

간단하게 Text로 링크 연결하면 

var body: some View{
        VStack(spacing: 40) {
            NavigationLink(
                destination: CustomTimer(),
                label: {
                    Text("타이머 설정 ! ")
                        .font(.system(size: 30))
                        .foregroundColor(.blue)
                        .fontWeight(.bold)
                        
                })
            NavigationLink(
                destination: CustomTimer(),
                label: {
                    Text("타이머 설정 ! ")
                        .font(.system(size: 30))
                        .foregroundColor(.purple)
                        .fontWeight(.bold)

                })
        }

 

< endView >

 

이렇게 설정한 끝 목적지까지 도달할 수 있다.

이 부분 구현은 Text만 넣은 거라 따로 코드는 넣지 않겠다.

 

 

< 최종 구현 GIF >

 

설명한 부분 포함해서

내가 디자인 해 놓은 부분도 포함했다.

StoryBoard로 구현했을 때는 Stack으로 쌓아서 구현했던 것 같은데 (아마도..)

뭔가 비교적 간단하게 구현 가능해서 좋았다.

( 개인적으로 SwiftUI가 더 편하고 직관적인 느낌이라 쓰기 편하다. )