1. ホーム
  2. ios

[解決済み] ナビゲーションリンクが一度だけ動作する

2023-01-22 22:38:50

質問

ログインするアプリケーションで、ログイン後にカテゴリが表示されるようにしました。そして、各カテゴリの下に、いくつかの項目が水平にリストされています。問題は、ログイン後、メインページが表示され、すべてが素晴らしくリストされています。アイテムをクリックすると詳細画面になりますが、戻ろうとするとクラッシュしてしまいます。以下のようなフローを見つけました。 私のSwiftUIアプリが、`NavigationView`の`navigationBarItems`の中に`NavigationLink`を配置した後、逆方向にナビゲートするときにクラッシュするのはなぜですか? しかし、私は私の問題を解決することができませんでした。私のプロジェクトは複雑になったので、私はちょうどswiftuiでナビゲーションを練習したかったので、新しいプロジェクトを作りました。ところで、私は最新の xcode バージョン 11.3 をダウンロードしました。以下のような簡単なコードを書きました。

NavigationView{
        NavigationLink(destination: Test()) {
            Text("Show Detail View")
        }
    .navigationBarTitle("title1")

そしてTest()ビューは以下のようになります。

import SwiftUI

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

struct Test_Previews: PreviewProvider {
    static var previews: some View {
        Test()
    }
}

ご覧のように、これは本当にシンプルです。インターネット上の似たような例も試しましたが、想定したようには動きません。プロジェクトを実行するとき、私はナビゲーションリンクをクリックし、それはTest()ビューにナビゲートします。その後、戻るボタンをクリックすると、メインページに移動します。しかし、2回目にナビゲーション・リンクをクリックすると、何も起こりません。ナビゲーション・リンクは1回だけ機能し、その後は何も起こりません。ナビゲーションリンクは一度だけ機能し、その後は何も起こりません。私はswiftuiの初心者で、すべてが素晴らしいのですが、ナビゲーションがうまくいきません。インターネット上で多くの例と解決策を試しましたが、私の問題を解決するものは何もないようです。

どのように解決するのですか?

[UPDATE】2020年11月5日-。 パウロ2222 によると、この問題は Xcode 12.1 で修正されたとのことです。


[UPDATE】2020年6月14日-。 Quang Hà によると、この問題は Xcode 11.5 で復活したとのことです。


[UPDATE] 2020年2月12日 - Xcode 11.4 ベータ版でこの問題を確認したところ、この問題は解決されていることがわかりました。


私のプロジェクトでも、Xcode のシミュレーターでテストしているときに、同じ問題が発生しました。しかし、実際のデバイス (iOS 13.3 を搭載した iPhone X) でアプリを起動したところ。 NavigationLink はまったく問題なく動作していました。ですから、それは本当に Xcode のバグのように思えます。