SwiftUI-NavigationBarTitleDisplayMode-根据模式动态更改标题



当视图的.navigationBarTitleDisplayMode(设置为.automatic(从.lage更改为.inline或反之亦然时,有没有办法得到通知?

类似于的@Environment对象

@Environment(.locale) var locale: Locale

根据displayMode,我想显示不同的标题
大致如下:

@Environment(.navigationBarTitleDisplayMode) var mode: NavigationBarTitleDisplayMode
...
.navigationBarTitle(mode == .large ? "I am the large title" : "Inline title")
.navigationBarTitleDisplayMode(.automatic)

这可以通过创建自己的参数来完成。

@State private var mode: NavigationBarItem.TitleDisplayMode = .large
(...)
.navigationBarTitle(mode == .large ? "I am the large title" : "Inline title")
.navigationBarTitleDisplayMode(mode)

您可以将这个var传递到环境中,并拥有一个全局指示符。

最新更新