我有下面一系列的控制器和视图。然而,当我使用MoreView上的导航链接时,它会更改tabBarItem.title值。例如,它会显示更多内容,但当单击隐私策略按钮并将用户导航到策略视图时,选项卡栏中的标题会更改为navigationBarTitle中的任何内容。()或者如果未提供,则为空字符串!如何避免这种情况?我希望选项卡栏标题是静态的
UI工具栏-〉UI导航控制器-〉更多视图控制器(UI主机控制器)-〉更多视图(快速UI)
更多视图
List {
Section(
header: Text("ABOUT"),
footer: Text(aboutFooter)
.font(.caption)
) {
NavigationLink(destination: WebView(
request: URLRequest(url: URL(string: "https://www.websitepolicies.com/policies/view/ng0sNvAJ")!)
)//.navigationBarTitle(Text("Privacy Policy"))
) {
Text("Privacy Policy")
}
Text("Attribution")
}
}
.listStyle(GroupedListStyle())
.environment(\.horizontalSizeClass, .regular)
4条答案
按热度按时间mrzz3bfm1#
这将是iOS中的一个bug。请向苹果提交bug报告。
我刚刚发现了a workaround for this issue:
创建
UINavigationController
的自定义子类,并将其用作包含MoreViewController
的导航控制器。hjzp0vay2#
看起来@funkenstrahlen的解决方案旨在解决这个问题的逆问题,并且在我的例子中导致了一个坏的访问异常。对于
tabBarItem
的标题消失的例子,这是一个对我有效的解决方案:您可以在
init
中设置storedTabBarItem
,也可以将其设置为公共并直接设置。gzjq41n43#
在应用程序启动时,将
YourTabBarController
设置为单例。TabBarHelper.instance.tabBar = YourTabBarController()
然后在您的SwifUIView
.onAppear
中输入类似这样的内容其他类可能如下所示
s5a0g9ez4#
我使用了下面的代码(非常类似@taeyawn的版本),为我修复了标签栏标题消失的问题,并且不需要在
init
中设置storedTabBarItem
: