gpt4 book ai didi

swift - 推/退时隐藏/显示标签栏。 swift

转载 作者:搜寻专家 更新时间:2023-10-30 22:01:23 25 4
gpt4 key购买 nike

回答:在每个 View Controller 中使用 self.tabBarController?.tabBar.hidden 而不是 hidesBottomBarWhenPushed 来管理 View Controller 是否应显示标签栏。

override func viewWillAppear(animated: Bool) {
self.tabBarController?.tabBar.hidden = true/false
}

我要

View Controller 1:应该显示标签栏

View Controller 2:应该显示标签栏

View Controller 3:不应显示标签栏。

View Controller 4:不应显示标签栏。

我写了

// prepareForSegue in view controller 1, 
let upcoming = segue.destinationViewController as! viewcontroller3
upcoming.hidesBottomBarWhenPushed = true

// in view controller 3,
func clickOnButton(button: UIButton) {
self.hidesBottomBarWhenPushed = false
self.performSegueWithIdentifier("viewController2", sender: self)
self.hidesBottomBarWhenPushed = true
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "viewController2" {
let upcoming = segue.destinationViewController as! viewController2
upcoming.hidesBottomBarWhenPushed = false
}
}
// prepareForSegue in view controller 2
let upcoming = segue.destinationViewController as! viewController4
upcoming.hidesBottomBarWhenPushed = true

如果 1 -> 3 然后回到 1,有效。

如果 1 -> 3 -> 2 然后回到 3 再回到 1,工作。

如果 2 -> 4,则返回 2,有效。

如果 1 -> 3 -> 2 -> 4 然后回到 2,标签栏不显示。想知道为什么。 hidesBottomBarWhenPushed 的任何建议或解释,因为它让我很困惑

enter image description here

最佳答案

顾名思义,hiddenBottomBarWhenPushed 仅在需要时隐藏底部栏,它不会取消隐藏底部栏。您可以这样做以使其正常工作:

override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.tabBar.hidden = true/false
}

或者简单地将 self.tabBarController?.tabBar.hidden = true/false 放在 prepareForSegue 中

但我不建议你这样做,因为如果 bottomBar 突然弹出会很奇怪,用户会认为他们突然回到了 rootViewController 而实际上并没有。

Users should always know where they are in your app and how to get to their next destination.

关于swift - 推/退时隐藏/显示标签栏。 swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35427102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com