我有以下视图层次结构:
@H_403_2@标签栏控制器 – >导航控制器 – >自定义视图控制器
@H_403_2@在我的自定义视图中,我希望TabBar消失并显示工具栏.与按下“选择”时的iOS7原生照片应用程序非常相似.
@H_403_2@我尝试了不同的解决方案,我发现了SO,但设法得到:
@H_403_2@> TabBar隐藏,工具栏显示黑色间隙
>隐藏TabBar并隐藏工具栏
> TabBar隐藏的工具栏显示与底部的间隙.但是,自定义视图内容到达屏幕底部(在工具栏下方和标签栏位于同一位置) @H_403_2@与我发现的其他解决方案的不同之处在于,我需要在点击而非推送时发生这种情况. @H_403_2@我试过的一些事情:
>隐藏TabBar并隐藏工具栏
> TabBar隐藏的工具栏显示与底部的间隙.但是,自定义视图内容到达屏幕底部(在工具栏下方和标签栏位于同一位置) @H_403_2@与我发现的其他解决方案的不同之处在于,我需要在点击而非推送时发生这种情况. @H_403_2@我试过的一些事情:
// #1 [self.navigationController.toolbar setHidden:!isSelecting]; [self.tabBarController.tabBar setHidden:isSelecting]; // #2 self.hidesBottomBarWhenPushed = YES; // #3 #1 & #2 variants @ different controller along the path
解决方法
最终,在玩完设置后,我设法让它发挥作用.我不确定为什么它现在有效并且之前没有用,所以我很感激你的意见.
@H_403_2@故事板:
@H_403_2@>标记为自定义视图控制器上的“在推送时隐藏底栏”
>选中导航控制器的“显示工具栏” @H_403_2@码: @H_403_2@在按钮上单击隐藏/取消隐藏tabBar:[self.tabBarController.tabBar setHidden:state] @H_403_2@这几乎可行.按下按钮时它会隐藏/取消隐藏tabBar,但唯一的问题是切换选项卡时最初会隐藏tabBar.我不得不做一些额外的努力让它可见. @H_403_2@切换选项卡时,设置UITabBarControllerDelegate以取消隐藏tabBar.我在自定义SUSourceTabController中做到了:
>选中导航控制器的“显示工具栏” @H_403_2@码: @H_403_2@在按钮上单击隐藏/取消隐藏tabBar:[self.tabBarController.tabBar setHidden:state] @H_403_2@这几乎可行.按下按钮时它会隐藏/取消隐藏tabBar,但唯一的问题是切换选项卡时最初会隐藏tabBar.我不得不做一些额外的努力让它可见. @H_403_2@切换选项卡时,设置UITabBarControllerDelegate以取消隐藏tabBar.我在自定义SUSourceTabController中做到了:
- (void)viewDidLoad { [super viewDidLoad]; self.delegate = self; } - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController: (UIViewController *)viewController { [self.tabBar setHidden:NO]; }@H_403_2@我们还需要取消隐藏自定义视图控制器代码中的第一个选项卡视图.使用setHidden:NO在代码中的任何其他位置都不起作用.
- (void)viewDidLoad { [super viewDidLoad]; [self.tabBarController.tabBar setHidden:NO]; }