我正在努力隐藏navigationBar
,如果根控制器不是 SwiftUI ,它将被正确隐藏UIHostingController
。
我尝试了以下方法:
创建后设置
navigationController.isNavigationBarHidden = true
,在viewDidLoad
和viewWillAppear
。为's添加
.navigationBarHidden(true)
和。.navigationBarBackButtonHidden(true)
UIHostingController
rootView
会不会是苹果的bug?我正在使用 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)
}
}