【发布时间】:2022-01-22 19:37:57
【问题描述】:
我想在UITabBarController 中插入一个新选项卡,它是UIHostingController 的 SwiftUI 视图,就像这张图片:
视图很简单,
ContentView.swift
struct ContentView: View {
var body: some View {
ZStack {
Color(.red).opacity(0.2).edgesIgnoringSafeArea(.all)
NavigationView {
Text("Hello")
}
}
}
在 AppDelegate.swift(禁用场景)我得到viewControllers 并像这样插入:
let controller = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "TabBarController") as! UITabBarController
let view = ContentView()
let viewController = UIHostingController(rootView: view)
controller.viewControllers?.insert(viewController, at: 0)
let item = controller.tabBar.items![0]
item.title = "Tab"
window.rootViewController = controller
self.window = window
window.makeKeyAndVisible()
结果如上图,没问题。但是当我将Text 放入NavigationView 时,就像:
var body: some View {
ZStack {
Color(.red).opacity(0.2).edgesIgnoringSafeArea(.all)
NavigationView {
Text("Hello")
}
}
}
那么结果是:
有一个灰色的空白栏,看起来和那里的tabbar一样,如何删除它?
我尝试通过以下方式隐藏标签栏:
tabBarController.tabBar.isHidden = true
是的,它已经消失了,但我不想隐藏 tabBar。任何帮助,谢谢!
【问题讨论】:
-
这是否回答了您的问题stackoverflow.com/a/64122705/12299030?
-
@Asperi 刚试了一下,tabBar 和
tabBarController.tabBar.isHidden = true一样被隐藏了。