如何为SwiftUI中NavigationLink的目标页面添加导航栏样式标题
你只需要给 ResultView 的根视图添加 navigationTitle 修饰符即可,该修饰符会自动将标题渲染到当前导航栏的合适位置,和系统自带的返回按钮处于同一水平行,样式默认和导航栏全局配置保持一致。
如果需要和首页标题的显示模式完全对齐,还可以搭配 navigationBarTitleDisplayMode 修饰符显式指定显示样式,可选值包括 .automatic(默认自动适配)、.inline(紧凑行内样式)、.large(大标题样式)。
修改后的完整代码如下:
struct ContentView: View { var body: some View { NavigationView { VStack(spacing: 30) { Text("你将要抛一枚硬币——要选择正面还是反面?") NavigationLink(destination: ResultView(choice: "正面")) { Text("选择正面") } NavigationLink(destination: ResultView(choice: "反面")) { Text("选择反面") } } .navigationTitle("导航") // 首页的标题显示模式,可根据你的实际需求调整,子页面显式设置相同值即可样式对齐 .navigationBarTitleDisplayMode(.automatic) } } } struct ResultView: View { var choice: String var body: some View { Text("你选择了\(choice)") // 此处设置当前页面的导航栏标题 .navigationTitle("抛硬币结果") // 显式指定和首页相同的显示模式,保证样式一致 .navigationBarTitleDisplayMode(.automatic) } }
如果需要使用动态标题,也可以直接把变量传入修饰符,比如:
.navigationTitle("你选择了\(choice)")
内容的提问来源于stack exchange,提问作者John Sorensen
相关产品推荐
相关产品推荐

