SwiftUI Sheet视图设置NavigationTitle,但实际上并不显示:
// Sheet 不显示 NavigationTitle
HomePrimaryBankSingleButtonView() {
}
.sheet(isPresented: $showMoreInformation) {
HomeMoreInformationView(primary: primaryBank)
}
// 子视图设置 NavigationTitle
struct HomeMoreInformationView: View {
var primary: PiggyBank
var body: some View {
ScrollView(showsIndicators: false) {
}
.navigationTitle("Settings")
}
}
SwiftUI中的Sheet本身是一个独立的呈现层级,导航栏属于Navigation Content上下文,Sheet默认不在这个上下文中,因此Sheet不会显示NavigationTitle。
解决方案:
在Sheet内包裹一层NavigationStack,
.sheet(isPresented: $showMoreInformation) {
NavigationStack { // 添加一层 NavigationStack
HomeMoreInformationView(primary: primaryBank)
}
}
这样Sheet就可以正常显示NavigationTitle。
