SwiftUI TabView + NavigationView 导航栏不显示

标签 swift swiftui navigationview tabview

在使用 UIKit 几年后,我开始使用 SwiftUI。这不是小菜一碟,哈哈。

好吧,所以我正在尝试构建一个具有包含 2 个元素的选项卡栏的应用程序。每个选项卡都包含一个 ViewController(现在为 View),它们将嵌入到一个 NavigationController(现在为 NavigationView)中

实际结果是这样的 enter image description here

我希望有一个标题设置为“主页”的导航栏。

你能解释一下我在这里做错了什么吗?我遵循了文档和一些教程,但我似乎没有做任何不同的事情。

import SwiftUI

struct TabBarView: View {
    var body: some View {
        TabView() {
            RedView()
                .tabItem({
                    Image(systemName: "house.fill")
                    Text("Home")
                })
                .tag(0)
            BlueView()
                .tabItem({
                    Image(systemName: "dollarsign.square.fill")
                    Text("Trade")
                })
                .tag(1)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        TabBarView()
    }
}


struct RedView: View {
    var body: some View {
        NavigationView {
            List {
                Text("test")
            }
        }
        .navigationBarTitle("Home")
    }
}
struct BlueView: View {
    var body: some View {
        NavigationView {
            List {
                Text("test2")
            }
        }
        .navigationBarTitle("Trade")
    }
}

这是包含当前所有内容的文件。预先感谢您将来的任何帮助!

最佳答案

.navigationBarTitle 应该内部 NavigationView

struct RedView: View {
    var body: some View {
        NavigationView {
            List {
                Text("test")
            }
            .navigationBarTitle("Home")     // << here !!
        }
    }
}

关于SwiftUI TabView + NavigationView 导航栏不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62938868/

相关文章:

swift - 保存文件但隐藏文件扩展名 - Cocoa with Key Value Coding

swift - 获取CPU时钟时间AVAudioEngine

swift - 动态获取协议(protocol)的字符串表示

ios - 重置 ARView 并再次运行 Coaching Overlay

ios - 使用 SpriteView 从 SwiftUI 暂停 SpriteKit 场景(isPaused :), 而无需每次都重新初始化?

swift - 通过大数组 Swift 进行过滤

java - 更改标题组和第一项菜单之间的抽屉间距

swift - 相应地为 Plist 上的项目保存 Userdefault 数组

安卓 KitKat : android. view.InflateException : Error inflating class android. support.design.widget.NavigationView

swiftui - VideoPlayer View 可防止 SwiftUI 导航栏隐藏