在Swift中更改ViewController后禁用任务栏?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Swift中更改ViewController后禁用任务栏?相关的知识,希望对你有一定的参考价值。
我想以编程方式更改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来呈现不同的视图。
知道为什么禁用标签栏以及如何解决它?
试试这个:
_ = tabBarController?.tabBar.items?.compactMap { $0.isEnabled = false }
你应该使用shouldSelectViewController
的委托方法UITabbarControllerDelegate
。该委托询问用户是否可以简单地选择视图控制器。
请参阅Apple文档link
像这样使用它:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
If homeControllerIsDoingSomething {
return false
}
return true
}
以上是关于在Swift中更改ViewController后禁用任务栏?的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中,如何在不同的 ViewController 中永久更改 a 标签的文本?
如何在 SWIFT 中更改 ViewController 后保留集合视图滚动位置
从 Swift 中的其他类更改 ViewController 的对象
Swift - 使用 selectedIndex 更改 var
在iOS8中使用Swift更改特定ViewControllers的状态栏颜色
Swift UIcollectionView 在同一个 ViewController 上更改第二个 UICollectionView 的内容?