SwiftUI导航栏标题未出现

时间:2019-07-15 01:11:18

标签: swiftui

我不确定Beta 3中是否有任何更改,但是,当尝试将NavigationBarTitle修改器添加到NavigationView时,它不显示标题的文本吗?有什么想法吗?

NavigationView {
         List(0 ..< 20) { item in
            NavigationLink(destination: Text("1")) {
                Text("Navigate 1")
            }
        }
    }.navigationBarTitle(Text("Update")).navigationBarHidden(false)
}

该列表显示在导航视图中,但没有标题

2 个答案:

答案 0 :(得分:4)

至少在我将其复制并粘贴到项目中时,编写的代码存在一个小问题。末尾有一个大括号。这对我来说是一个错误,但是我假设您不小心从body属性中复制了右花括号。

由于未显示导航栏标题,您应该在.navigationBarTitle上将.navigationBarHiddenNavigationView设置为List的修饰符,而不是:< / p>

NavigationView {
    List(0 ..< 20) { item in
        NavigationLink(destination: Text("1")) {
            Text("Navigate 1")
        }
    }
    .navigationBarTitle(Text("Update"))
    .navigationBarHidden(false)
}

您也可以只删除.navigationBarHidden(false)(除非您在先前的视图或其他视图中将其设置为true)。

答案 1 :(得分:0)

您的代码运行良好,navigationBarTitle 没有过时。它必须放在上方(导航视图内)。是的,有时会令人困惑,有必要记住这一点。

对于当前拥有它的位置 .navigationBarTitle(Text ("Update")).navigationBarHidden(false),您需要设置修饰符 .navigationViewStyle(StackNavigationViewStyle ()),这意味着无论屏幕大小如何,您都应该始终显示第一个屏幕。

    var body: some View {
        NavigationView {
                 List(0 ..< 20) { item in
                    NavigationLink(destination: Text("1")) {
                        Text("Navigate 1")
                    }
                }
                 .navigationBarTitle(Text("Update"), displayMode: .automatic).navigationBarHidden(false)
            }
        // that means only show one view at a time no matter what device I'm working
        .navigationViewStyle(StackNavigationViewStyle())
        }