1. ホーム
  2. ios

[解決済み] SwiftUIでナビゲーションのタイトルが表示されないのはなぜですか?

2023-05-24 12:27:21

質問

私は勉強中です。 SwiftUI の公式チュートリアルで勉強しています。 https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation

すべてが完璧に動作しますが、ナビゲーションタイトルを NavigationView にナビゲーションのタイトルを表示するために .navigationBarTitle .

ライブビューを更新したり、Xcodeを再起動したりしてみましたが、まだ表示されません。

以下は私のコードです。

import SwiftUI

struct LandmarkList : View {
    var body: some View {
        NavigationView {
            List(landmarkData) { landmark in
                LandmarkRow(landmark: landmark)
            }
        }
        .navigationBarItem(title: Text("Done"))
        .navigationBarTitle(Text("Landmarks"))
    }
}

#if DEBUG
struct LandmarkList_Previews : PreviewProvider {
    static var previews: some View {
        LandmarkList()
    }
}
#endif

Xcodeはこんな感じです。

チュートリアルによると、ナビゲーションのタイトルが表示されるはずですが、私のケースでは表示されません。

何か理由があるのでしょうか?ありがとうございます。

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

.navigationBarTitle() そして .navigationBarItem()View の内部で NavigationView の中ではなく NavigationView そのものではなく

struct LandmarkList: View {
    var body: some View {
        NavigationView {
            List(landmarkData) { landmark in
                LandmarkRow(landmark: landmark)
            }
            .navigationBarItem(title: Text("Done"))
            .navigationBarTitle(Text("Landmarks"))
        }
    }
}

と、考えてみると、これは理にかなっています。 というのも View の中に NavigationView が変更されると、新しい View は、ナビゲーション・バーのタイトルとコンテンツがどうあるべきかを指示します。