【SwiftUI】NavigationView의 천이의 중첩으로 back 버튼이 복수 생성되어 가는데 빠졌기 때문에 메모

5235 단어 XcodeSwiftSwiftUI

소개



SwiftUI를 터치하기 시작한지 ​​1일째Navigation에서 화면 전환을 할 때 어리석게 코드를 작성했지만 해결 기사를 빨리 찾을 수 없으므로 메모

개발 환경


  • Swift(version 5.3.1)
  • Xcode(version 12.2)

  • 해결하고 싶은 것


    Navigation 의 back 버튼이 전 화면의 View 에 갱신되는 것이 아니라, 아래에 추가되어 버리고 있다…

    아니, 곤란해. (땀

    해결하기 전에


  • FirstView.swift
  • SecondView.swift
  • EndView.swift

  • 이상의 3화면으로 구성되어 있다

    FirstView.swift
    struct FirstView: View {
        var body: some View {
            NavigationView {
                NavigationLink(destination: SecondView()) {
                    Text("Go Second View")
                }
            }
            .navigationTitle("First View")
        }
    }
    

    SecondView.swift
    struct SecondView: View {
        var body: some View {
            NavigationView {
                NavigationLink(destination: EndView()) {
                    Text("Go End View")
                }
            }
            .navigationBarTitle("Second View", displayMode: .inline)
        }
    }
    

    EndView.swift
    struct EndView: View {
        var body: some View {
            Text("Hello, World!")
        }
    }
    

    간단하게 구현했는데 무엇이 원인인가…

    해결 방법



    뭔가 Navigation가 2 개 생성되는 분위기 야.FirstView.swift 에서 NavigationView{} 를 기술하고 있기 때문에 SecondView.swift 그럼 혹시 필요없는 느낌? ?NavigationLink 그냥 떠나서 움직일까…

    SecondView.swift
    struct SecondView: View {
        var body: some View {
            //NavigationView {}削除!
            NavigationLink(destination: EndView()) {
                Text("Go End View")
            }
            .navigationBarTitle("Second View", displayMode: .inline)
        }
    }
    

    이제 실행 ↓

    그래,이 행동을 원했던거야.
    무사히 해결했다~!

    마지막으로



    어쩌면 이것이야?
    어리석게 쓰면 이런 곳에 빠진다.
    아직 초보자이지만 최선을 다합시다.

    Qiita 첫 투고… 이런 느낌의 쓰는 방법으로 좋은 것일까 w

    좋은 웹페이지 즐겨찾기