我正在使用苹果的官方教程学习SwiftUI: https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation

一切都很正常,直到我试着拨打.navigationBarTitleNavigationView上显示导航标题.

我try 刷新实时视图,重新启动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()NavigationView内部View的修饰符,而不是NavigationView本身的修饰符:

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

如果你仔细想想,这是有道理的.当NavigationView中的View改变时,新的View规定导航栏的标题和内容应该是什么.

Ios相关问答推荐

RN 0.63支持iOS ProMotion?

RxSwift:如何使用另外两个可观测对象(其中一个依赖于另一个)创建可观测对象?

将数据传回VC时委托为空

带菜单的选取器不适用于Int32,但适用于Int

iphone 11 和 iphone 12 对于相同的布局显示不同的结果

flutter中实现自定义底部导航栏

iOS设备网页自动化中,在向字段发送文本后未启用按钮

创建方案时运行 pod install 时出错

iOS 16 中的状态栏 colored颜色

Text() 正在添加额外的前导尾随填充 SwiftUI

包装在 AnyView 中时 UIViewControllerRepresentable 无法正常工作

通过函数使用 Gesture 时,键入任何视图不能符合视图

判断Apple LiveText是否可用?

如何在 iPhone 中为透明的 PNG 图像着色?

如何以编程方式切换 UISegmentedControl?

iOS 7 半透明模态视图控制器

如何关闭 iOS 键盘?

Objective-C 将 NSDate 设置为当前 UTC

错误 itms-90035 - Xcode

类 AMSupportURLConnectionDelegate 在两者中都实现