首页 > 解决方案 > 如何在 SwiftUI 中的 UIViewControllerRepresentable 中隐藏 UIKit Tabbar

问题描述

我正在尝试使用UIViewControllerRepresentable. ItineraryViewController我想隐藏我们通过使用planDetailViewController.hidesBottomBarWhenPushed = true但该解决方案不起作用的 UIKit 标签栏。

  let eventGroup : EventGroup?
  func makeUIViewController(context: Context) -> UIViewController {
    guard let planDetailViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(identifier: "ItineraryViewController") as? ItineraryViewController else {
      fatalError("ViewController not implemented in storyboard")
    }
    planDetailViewController.userActionMode = .viewOnly
    planDetailViewController.itinerary = eventGroup!.event
    planDetailViewController.shouldDisableCalendarVC = true
    planDetailViewController.hidesBottomBarWhenPushed = true
    return planDetailViewController
  }
  func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {
  }
}```

标签: iosswiftswiftuistoryboarduikit

解决方案


您的 UIViewControllerRepresentable 不会像在 UIKit 中那样被推送到 UINavigationController 中,因此不会尊重 hidesBottomBarWhenPushed。

最好的方法是在这个答案中使用 Introspect:https ://stackoverflow.com/a/64182729/3393964


推荐阅读