1.7.1 配置应用的导航标题

原文链接: https://developer.apple.com/documentation/swiftui/configure-your-apps-navigation-titles

1.7.1 配置应用的导航标题

用导航标题显示界面当前的导航状态。

概述

在 iOS 和 watchOS 上,当某个视图在导航栈内被导航到时,导航栏会显示该视图的标题。在 iPadOS 上,主要目标的导航标题会作为窗口标题反映在「应用切换器」中。类似地,在 macOS 上,系统会把主要目标的标题用作文本栏窗口标题、Windows 菜单和「调度中心」中的窗口标题。

最简单的形式是直接给导航标题修饰符提供一个字符串或本地化字符串键。

1
2
ContentView()
    .navigationTitle("My Title")

你还可以用其他与导航相关的修饰符进一步定制应用工具栏的标题。例如,你可以用导航文稿修饰符把一个 URL 或你自己遵循 Transferable 的类型关联到视图上。

1
2
3
ContentView()
    .navigationTitle("My Title")
    .navigationDocument(myURL)

在 iOS 和 iPadOS 上,这会构造出一个标题:轻点应用导航栏中的导航标题时可以呈现菜单。该菜单包含与该 URL 相关的信息内容,以及一个可拖动的分享图标。

在 macOS 上,这个条目会构造一个代理图标,用于操作该文稿背后的文件。

提供可传输类型时,通常还应当提供一个 SharePreview,为菜单页眉中的预览渲染提供合适的内容。

1
2
3
4
5
6
ContentView()
    .navigationTitle("My Title")
    .navigationDocument(
        myDocument, 
        preview: SharePreview(
            "My Preview Title", image: myDocument.image))

重命名

你可以给导航标题修饰符提供一个文本绑定,SwiftUI 会自动配置工具栏,允许在 iOS 或 macOS 上编辑导航标题。SwiftUI 会自动让导航标题与提供给文本输入框的字符串绑定值保持同步。

你可以给导航标题提供一个字符串绑定,用它配置标题的文本输入框。SwiftUI 会自动在标题菜单中放置一个重命名操作,与应用命令产生的那些操作并列。

1
2
ContentView()
    .navigationTitle($contentTitle)

在 iOS 上,当导航标题中使用文本输入框时,SwiftUI 会在工具栏标题处创建一个按钮。触发它时,该按钮会把导航标题更新为一个内联文本输入框,随着用户输入更新你提供的绑定。