我在应用程序内部使用工作表,应用程序在所有工作表上都会显示导航标题.但出于某种原因,我没有在页面上看到导航标题,这是从应用程序的第一个视图出现的.我不知道为什么会发生这种事.

我有什么地方做错了吗?

我应用程序中的代码是这样的.内容视图包装在NavigationStack中.内容视图打开另一个视图(Firstview)作为导航目的地,此视图显示一个工作表,我希望在该工作表中显示导航标题和底部栏.我还没有开始在底部栏工作,但我不确定为什么导航标题没有显示.

100

import SwiftUI
import Foundation

struct ContentView: View {
    @State private var showDetails = false
    
    var body: some View {
        NavigationStack {
            VStack {
                Button("First View") {
                    showDetails = true
                }
            }
            .navigationDestination(isPresented: $showDetails) {
                FirstView()
            }
        }
    }
}

struct FirstView: View {
    @State private var showDetails = false
    
    var body: some View {
        VStack {
            Button("Show Sheet") {
                showDetails = true
            }
        }
        .sheet(isPresented: $showDetails) {
            SheetView()
        }
    }
}

struct SheetView: View {
    var body: some View {
        VStack {
            Text(getAttributedText()).font(.body)
            Spacer()
        }
        // .navigationTitle("Settings") // This doesn't work nor does toolbaritem.
        .navigationBarTitleDisplayMode(.inline)
        .toolbar {
            ToolbarItem(placement: .principal) {
                Text("Settings").foregroundStyle(Color.black)
            }
        }
        .interactiveDismissDisabled()
    }
    
    func getAttributedText() -> AttributedString {
        var attributedString = AttributedString("")
        
        var disclaimerText = AttributedString("This is an attributed text with links and underlined text. Some more text just for this sample app.")
        disclaimerText.foregroundColor = .black
        attributedString.append(disclaimerText)


        return attributedString
    }
}

推荐答案

导航目的地获得导航栏,因为它们与NavigationStack的根视图在同一导航堆栈中.显示工作表不会将显示的视图放到堆栈中,因此工作表不会因为它是由导航堆栈中的视图显示而获得导航栏.

您需要单独的NavigationStack才能在显示的图纸视图上显示导航栏.

// in .sheet(isPresented: $showDetails) {
NavigationStack {
    SheetView()
}

Ios相关问答推荐

将图案UI视图动画化以模拟进度条

(Flutter)获取图像从图像拾取器保存和加载问题

Fastlane,iOS Provisioning Profile推送通知权限(通过示例)&

JSON响应中的键有时为Int,有时为字符串

如何在KMM项目中处理PHPickerViewController的回调?

如何在expo-react native中从ios平台中排除包

保存和读取登录到 keys 串不工作 IOS swift

ITMS-90725 无用的错误信息,因为它自相矛盾,苹果上传

我无法使用 Swift 将文件上传到 firebase

swiftUI中的剪辑形状无法使用旋转效果

满足条件时 SwiftUI 动画背景 colored颜色 变化

JSONDecoder 在模拟器上运行良好时无法在真实设备上解码

如何将私钥添加到分发证书?

UIView 和 initWithFrame 以及一个 NIB 文件.如何加载 NIB 文件?

在 iPhone 中将 UIViewController 显示为弹出窗口

自动布局:是什么创建了名为 UIView-Encapsulated-Layout-Width & Height 的约束?

单击 GoogleSignIn 按钮时应用程序崩溃

如何关闭 iOS 键盘?

UICollectionView flowLayout 没有正确包装单元格

闭包不能隐式捕获变异的 self 参数