当我从另一个视图返回视图时 TabBarController 消失
TabBarController disappears when I segue back to the view from another view
我有一个嵌入在导航控制器中的 viewController。然后将该导航控制器嵌入到选项卡栏控制器中。
我还有另一个 viewController 不应从 tabBarController 访问它。它应该只能从第一个 viewController 使用按钮访问。在 secondViewController 中,我制作了一个 UIBarButtonItem 以移回原始视图。从第一个视图到第二个视图,反之亦然,我使用 Storyboard 引用在视图之间移动。
但是,当我从第一个视图移动到第二个视图时,选项卡栏控制器消失了(就像它应该的那样)。当我回到第一个视图时,标签栏控制器消失了,我不能再在标签之间移动了。
我试过包括:
self.hidesBottomBarWhenPushed = false
第一个视图和
self.hidesBottomBarWhenPushed = true
第二个视图
似乎没有任何效果。每次我从第二个视图移动到第一个视图时,标签栏控制器都会消失。
您遵循的是错误的层次结构。您实际上是在使用 seagues 来回移动。每次您尝试返回第一个控制器时都会创建一个新实例。
让我们说清楚:
您需要遵循以下方法:
1你有两个控制器A和B。
2 在控制器 A 的 viewDidLoad 或 viewWillAppear 中使用 self.hidesBottomBarWhenPushed = true
3 控制器 A 嵌入到导航控制器中,导航控制器进一步嵌入到 UITabBarController 中。
点击控制器 A 中的按钮,您需要按下控制器 B。因此您可以为此使用 segue,或者您可以像这样以编程方式执行此操作:
let controllerB = B()
A.navigationController?.pushViewController(controllerB, animated: true)
4 返回到点击 UIBarButtonItem 上的控制器 A。所以你在 UIBarButtonItem 动作中的代码应该是这样的:
self.navigationController?.popViewController(animated: true)
记住你不应该继续回到以前的控制器。
你应该使用
override func viewWillDisappear(_ animated: Bool) {
self.tabBarController?.tabBar.isHidden = false
}
在放置后退按钮的那个控制器中,我在我的应用程序之一中使用了确切的场景。
我有一个嵌入在导航控制器中的 viewController。然后将该导航控制器嵌入到选项卡栏控制器中。
我还有另一个 viewController 不应从 tabBarController 访问它。它应该只能从第一个 viewController 使用按钮访问。在 secondViewController 中,我制作了一个 UIBarButtonItem 以移回原始视图。从第一个视图到第二个视图,反之亦然,我使用 Storyboard 引用在视图之间移动。
但是,当我从第一个视图移动到第二个视图时,选项卡栏控制器消失了(就像它应该的那样)。当我回到第一个视图时,标签栏控制器消失了,我不能再在标签之间移动了。
我试过包括:
self.hidesBottomBarWhenPushed = false
第一个视图和
self.hidesBottomBarWhenPushed = true
第二个视图
似乎没有任何效果。每次我从第二个视图移动到第一个视图时,标签栏控制器都会消失。
您遵循的是错误的层次结构。您实际上是在使用 seagues 来回移动。每次您尝试返回第一个控制器时都会创建一个新实例。
让我们说清楚:
您需要遵循以下方法:
1你有两个控制器A和B。
2 在控制器 A 的 viewDidLoad 或 viewWillAppear 中使用 self.hidesBottomBarWhenPushed = true
3 控制器 A 嵌入到导航控制器中,导航控制器进一步嵌入到 UITabBarController 中。
点击控制器 A 中的按钮,您需要按下控制器 B。因此您可以为此使用 segue,或者您可以像这样以编程方式执行此操作:
let controllerB = B()
A.navigationController?.pushViewController(controllerB, animated: true)
4 返回到点击 UIBarButtonItem 上的控制器 A。所以你在 UIBarButtonItem 动作中的代码应该是这样的:
self.navigationController?.popViewController(animated: true)
记住你不应该继续回到以前的控制器。
你应该使用
override func viewWillDisappear(_ animated: Bool) {
self.tabBarController?.tabBar.isHidden = false
}
在放置后退按钮的那个控制器中,我在我的应用程序之一中使用了确切的场景。