SwiftUI - 导航栏后退按钮出现几分之一秒

Bhu*_*att 6 ios swiftui swiftui-navigationview

我研究了很多解决方案,但没有一个有效。我的应用程序导航流程是

  1. ViewController (UIKit) - 推送到 SwiftUI 视图
  2. 此 SwiftUI 视图显示后栏按钮几分之一秒,然后隐藏。

这是我的代码:

struct FirstSwiftUIView: View {

var body: some View {

  VStack {
    Text("First SwiftUi View")
    NavigationLink {
      SecondSwiftUIView()
    } label: {
      Text("Next View")
    }
  }
  .navigationBarBackButtonHidden(true)
  .navigationBarTitle("")
}
Run Code Online (Sandbox Code Playgroud)

}

Bhu*_*att 13

我已经找到解决办法了。在从 UIKit 转到 SwiftUI 之前,可以从 UIHostingController 隐藏后退按钮。

let firstSwiftUI = UIHostingController(rootView: FirstSwiftUIView())
firstSwiftUI.navigationItem.hidesBackButton = true
navigationController?.pushViewController(firstSwiftUI, animated: true)
Run Code Online (Sandbox Code Playgroud)


Chr*_*isR 0

    \n
  • 将视图包装在NavigationView. (也许你在应用程序结构中这样做了)

    \n
  • \n
  • 使用.navigationBarBackButtonHidden(true),因为您想隐藏后退按钮。

    \n

    结构ContentView:视图{

    \n
      var body: some View {\n\n      NavigationView {\n          VStack {\n              Text("First SwiftUi View")\n              NavigationLink {\n\n                  // your destination view\n                  Text("Destination")\n                      .navigationBarBackButtonHidden(true)\n\n              } label: {\n                  Text("Next View")\n              }\n          }\n          .navigationBarTitle("")\n      }\n  }\n
    Run Code Online (Sandbox Code Playgroud)\n

    }

    \n
  • \n
\n