【发布时间】:2020-12-01 15:50:06
【问题描述】:
我正在努力隐藏 navigationBar,如果根控制器不是 SwiftUI UIHostingController,它将被正确隐藏。
我尝试了以下方法:
-
在创建后设置
navigationController.isNavigationBarHidden = true,在viewDidLoad和viewWillAppear。 -
为
UIHostingController的rootView添加.navigationBarHidden(true)和.navigationBarBackButtonHidden(true)。
这可能是 Apple 的错误吗?我正在使用 Xcode 11.6。
我所有的尝试:
class LoginController: UINavigationController, ObservableObject
{
static var newAccount: LoginController
{
let controller = LoginController()
let view = LoginViewStep1()
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
controller.viewControllers = [UIHostingController(rootView: view)]
controller.isNavigationBarHidden = true
return controller
}
override func viewWillAppear(_ animated: Bool)
{
super.viewWillAppear(animated)
self.isNavigationBarHidden = true
}
override func viewDidLoad()
{
super.viewDidLoad()
self.isNavigationBarHidden = true
}
}
struct LoginViewStep1: View
{
// ...
var body: some View
{
VStack {
// ...
}
.navigationBarHidden(true)
.navigationBarBackButtonHidden(true)
}
}
【问题讨论】:
-
你会展示你的代码吗?
-
添加了我的代码@Asperi。
标签: ios uinavigationcontroller swiftui uinavigationbar uihostingcontroller