当视图的.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传递到环境中,并拥有一个全局指示符。