[SwiftUI] Navigation Stack で遷移ができない

# Navigation Stack とは
従来のSwiftUIの画面遷移で用いられてきた`NavigationView`の後継。`NavigationStack`はApple公式から画面遷移の実装として推奨されている。

https://developer.apple.com/documentation/swiftui/navigationstack

かくいう私はSwiftUI新参者かつ新しい技術を積極的に取り入れたい思考のため、最初から`NavigationStack`を用いて実装しております。

# NavigationStackのいいところ

以下は私のプロジェクトの一部のコードですが、このページをルートにしてNavigationを開始します。

```swift
import SwiftUI

// TODO: Update NavigationStack With Path
// https://qiita.com/yoshi-eng/items/91666637cd7cdd8edf88

struct EntrancePage: View {

  let documentRepository: DocumentRepository = DocumentRepositoryImpl()
  @EnvironmentObject var launchPageViewModel: LaunchPageViewModel

  @State private var path = NavigationPath()
  @State private var isShowDeleteDialog = false
  @State private var isFetching = false

  var body: some View {
    NavigationStack(path: $path) {
      ZStack {
        if isFetching {
          ProgressView()
            .progressViewStyle(.circular)
            .scaleEffect(2.0)
        }
        VStack {
          Spacer()
          NavigationLink(
            value: Route.findPageRote, label: {
              TextButton(
                text: "Find",
                textColor: Color.white,
                backGroundColor: Color.blue)
            }
          )
          Spacer()
          Divider()
          Spacer()
          if launchPageViewModel.deviceRegisterState == .notRegisterd {
            NavigationLink(
              value: Route.registerPageRote,
              label: {
                TextButton(
                  text: "Register",
                  textColor: Color.white,
                  backGroundColor: Color.green)
              }
            )
          } else if (launchPageViewModel.deviceRegisterState == .registered) {
            TextButton(
              text: "Delete",
              textColor: Color.white,
              backGroundColor: Color.red
            )
            .onTapGesture {
              print("Delete tapped")
              isShowDeleteDialog = true
            }
            .alert(
              "Confirmation",
              isPresented: $isShowDeleteDialog,
              actions: {
                Button("No", role: .cancel) {
                  isShowDeleteDialog = false
                }
                Button("Yes") {
                  Task {
                    defer {
                      isFetching = false
                      isShowDeleteDialog = false
                    }
                    // TODO: nil Handling
                    do {
                      isFetching = true
                      try await documentRepository.deleteDocument(
                        device_id: Util.getDeviceUUID() ?? "", completion: nil)
                      launchPageViewModel.deviceRegisterState = .notRegisterd
                    } catch {
                      print(error)
                    }
                  }
                }
              }
            ) {
              Text(
                "Your device will be out of management and you will not be able to find your device. Are you sure?"
              )
            }
            Spacer()
            Divider()
            Spacer()
            TextButton(
              text: "Update Location",
              textColor: Color.white,
              backGroundColor: Color.orange
            )
          }
          Spacer()
        }
        .zIndex(1)
        .navigationDestination(for: Route.self, destination: { it in
          if it == .findPageRote {
            FindPage()
          } else if it == .registerPageRote {
            RegisterPage()
          }
        })
      }
      .environmentObject(launchPageViewModel)
    }
  }
}

#Preview{
  EntrancePage()
}

```

`NavigationLink`の引数に`value: Route.findPageRote`を指定して画面遷移を実現することができます。

```swift
 @State private var path = NavigationPath()
```

```swift
NavigationLink(
value: Route.findPageRote, label: {
  TextButton(
    text: "Find",
    textColor: Color.white,
    backGroundColor: Color.blue)
}
)
```

# 起こった問題

私は`value: Route.findPageRoute`の場合は`FindPage()`に遷移させるようにコードを書いたつもりでしたが、
なぜか画面がすぐにルートページに戻り、遷移させようとするとFatal Errorが発生する現象が発生していました。

# 原因 / 対策
`FindPage`,`RegisterPage` の`View`内にも`NavigationStack`を実装していたことが原因で不具合が発生しました。したがって以上から`NavigationStack`を消したところうまく遷移できるようになりました。

# 参考
https://thwork.net/2022/09/13/swiftui_navigationstack_back/