gpt4 book ai didi

ios - 单击按钮时隐藏 TabBar 并显示 NavigationController 工具栏

转载 作者:可可西里 更新时间:2023-11-01 03:31:13 24 4
gpt4 key购买 nike

我有以下 View 层次结构:

标签栏 Controller -> 导航 Controller -> 自定义 View Controller

在我的自定义 View 中,我希望 TabBar 消失并显示一个工具栏。很像在 iOS7 native 照片应用程序中按下“选择”时。

我尝试了从 SO 中找到的不同解决方案,但都成​​功了:

  1. TabBar 隐藏,Toolbar 显示有黑色间隙
  2. TabBar 隐藏,Toolbar 隐藏
  3. TabBar 隐藏的工具栏显示为与底部有间隙。但是,自定义 View 内容到达屏幕底部(在工具栏下方和标签栏曾经所在的同一位置)

与我发现的其他解决方案的不同之处在于,我需要在点击而不是推送时发生这种情况。

我尝试过的一些事情:

// #1
[self.navigationController.toolbar setHidden:!isSelecting];
[self.tabBarController.tabBar setHidden:isSelecting];

// #2
self.hidesBottomBarWhenPushed = YES;

// #3
#1 & #2 variants @ different controller along the path

最佳答案

最终,在尝试了这些设置后,我设法让它工作了。我不确定为什么它现在可以工作而以前没有工作,所以非常感谢您的评论。

Storyboard:

  1. 为自定义 View Controller 标记为选中“推送时隐藏底部栏”
  2. 将导航 Controller 的“显示工具栏”标记为已选中

代码:

在按钮上单击隐藏/取消隐藏 tabBar:[self.tabBarController.tabBar setHidden:state]

这几乎行得通。它确实在按下按钮时隐藏/取消隐藏 tabBar,但唯一的问题是 tabBar 在切换选项卡时最初是隐藏的。我必须做一些额外的努力才能让它可见。

设置 UITabBarControllerDelegate 以在切换选项卡时取消隐藏 tabBar。我是在自定义 SUSourceTabController 中完成的:

- (void)viewDidLoad
{
[super viewDidLoad];
self.delegate = self;
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController: (UIViewController *)viewController
{
[self.tabBar setHidden:NO];
}

我们还需要在自定义 View Controller 代码中为第一个选项卡 View 取消隐藏它。在代码的任何其他地方使用 setHidden:NO 都不起作用。

- (void)viewDidLoad
{
[super viewDidLoad];
[self.tabBarController.tabBar setHidden:NO];
}

关于ios - 单击按钮时隐藏 TabBar 并显示 NavigationController 工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24353265/

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