gpt4 book ai didi

swift - 带有 SwiftUI View 的 UIKit TabBar

转载 作者:行者123 更新时间:2023-12-03 09:23:02 27 4
gpt4 key购买 nike

我正在更新我现有的 UIKit 以在某些部分使用 SwiftUI,我觉得能够用 SwiftUI 替换所有部分。它是一个选项卡应用程序,因此有 3 个选项卡,其中一个是设置,我将用 SwiftUI 替换它。
我的标签栏被配置为只显示图像而不显示标题(我需要帮助的问题也会在显示标签时发生)。
现在在 UIKit 中我这样做:private let settingsViewController: UIViewController = UIHostingController<SettingsView>(SettingsView())稍后在显示之前:settingsViewController.navigationItem.title = "Settings" .
然而,从那时起,SwiftUI 开始使用它的 View 修饰符:.navigationBarTitle("Text") ,我用于嵌套 View Controller (通过 NavigationLink 推送),因为 UIKit 无法访问这些 View 来设置标题。
然而,问题是,每当 .navigationBarTitle使用(与在 UIKit 中设置 View 的 title 属性相同,它设置当前选项卡栏项的标题。对于 UIKit,总是有一种方法可以设置 navigationItem.title 而不是 title
有什么方法可以在 SwiftUI 中设置导航栏标题而不是标签栏标题本身?
谢谢

最佳答案

这将是 iOS 中的一个错误。请向 Apple 提交错误报告。
我刚刚发现 a workaround for this issue :
创建 UINavigationController 的自定义子类并将其用作包含您的 settingsViewController 的导航 Controller .

class WorkaroundUINavigationController: UINavigationController {
override var title: String? {
get { tabBarItem.title }
set { navigationItem.title = newValue }
}
}

关于swift - 带有 SwiftUI View 的 UIKit TabBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62640846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com