【问题标题】:Disabling taskbar after changing ViewController in Swift?在 Swift 中更改 ViewController 后禁用任务栏?
【发布时间】:2018-08-31 05:39:36
【问题描述】:

我想在以编程方式更改 ViewController 后禁用任务栏。我有一个悬停按钮。单击它后,将调用此代码来更改 ViewController:

self.navigationController?.setViewControllers([lvc!], animated: true)

这很好用。更改后,我调用 viewDidLoad 方法,该方法也被调用(检查控制台)。 代码是这样的:

override func viewDidLoad() {
    super.viewDidLoad()
    self.tabBarController?.tabBar.isUserInteractionEnabled = false
}

按钮位于 HomeView 中。如果我在 HomeView 的 viewDidLoad 方法中调用 self.tabBarController?.tabBar.isUserInteractionEnabled = false ,则标签栏被禁用。我正在使用 NavigationController 来呈现不同的视图。

知道为什么标签栏没有被禁用以及如何修复它吗?

【问题讨论】:

    标签: ios swift user-interface tabs disable


    【解决方案1】:

    试试这个:

    _ = tabBarController?.tabBar.items?.compactMap { $0.isEnabled = false }
    

    【讨论】:

    • 简单而精彩。非常感谢。
    【解决方案2】:

    您应该使用UITabbarControllerDelegate 的委托方法shouldSelectViewController。这个委托询问用户是否可以选择视图控制器,简单来说。

    请参阅 Apple 文档link

    像这样使用它:

    func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
        If homeControllerIsDoingSomething {
            return false
        }
        return true
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-26
      • 2023-03-09
      • 1970-01-01
      • 2015-01-13
      • 2022-06-28
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多