gpt4 book ai didi

ios - 如何在 iOS 中使用导航栏隐藏/显示 View 的标签栏?

转载 作者:IT王子 更新时间:2023-10-29 07:34:28 25 4
gpt4 key购买 nike

我有一个带有导航栏和标签栏的 View 。我想要发生的是隐藏某个 View 上的标签栏,并在用户更改 View 时再次显示标签栏。

我看到了一段隐藏标签栏的代码:

-(void)makeTabBarHidden:(BOOL)hide
{
// Custom code to hide TabBar
if ( [tabBarController.view.subviews count] < 2 ) {
return;
}

UIView *contentView;

if ( [[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) {
contentView = [tabBarController.view.subviews objectAtIndex:1];
} else {
contentView = [tabBarController.view.subviews objectAtIndex:0];
}

if (hide) {
contentView.frame = tabBarController.view.bounds;
}
else {
contentView.frame = CGRectMake(tabBarController.view.bounds.origin.x,
tabBarController.view.bounds.origin.y,
tabBarController.view.bounds.size.width,
tabBarController.view.bounds.size.height - tabBarController.tabBar.frame.size.height);
}

tabBarController.tabBar.hidden = hide;
}

来自:http://nickwaynik.com/iphone/hide-tabbar-in-an-ios-app/

我在我想隐藏标签栏的 View 上调用它

[self makeTabBarHidden:YES];

当我在那个 View 上显示/隐藏它时它工作正常,但是当我导航回上一个 View 时,那里的选项卡栏也被隐藏了。我尝试在 View 的 viewDidUnloadviewWillDisappearviewDidDisappear 函数中调用该函数,但没有任何反应。在上一个 View 的viewDidLoadviewWillAppearviewDidAppear函数中调用该函数也是如此。

最佳答案

您可以改为设置 UIViewController.hidesBottomBarWhenPushed:

DetailViewController *detailViewController = [[DetailViewController alloc] init];
detailViewController.hidesBottomBarWhenPushed = YES;
[[self navigationController] pushViewController:detailViewController animated:YES];
[detailViewController release];

关于ios - 如何在 iOS 中使用导航栏隐藏/显示 View 的标签栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6383069/

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