我正在开发一个标签栏项目,在这个项目中我也有导航控制器。我正在执行以下步骤:- 显示从第一个选项卡到 5 个下一个屏幕的主屏幕导航。在第 6 个屏幕上,我想显示 tabbarcontroller 并想显示我的其他标签栏。我尝试了以下代码:-
self.navigationController.tabBarController.hidesBottomBarWhenPushed = YES;
和其他一些。但还没有取得任何成功。所以有人能建议我怎么做吗?
谢谢
我正在开发一个标签栏项目,在这个项目中我也有导航控制器。我正在执行以下步骤:- 显示从第一个选项卡到 5 个下一个屏幕的主屏幕导航。在第 6 个屏幕上,我想显示 tabbarcontroller 并想显示我的其他标签栏。我尝试了以下代码:-
self.navigationController.tabBarController.hidesBottomBarWhenPushed = YES;
和其他一些。但还没有取得任何成功。所以有人能建议我怎么做吗?
谢谢
创建两个不带 .xib 的文件 .h 和 .m
//.h file
#import <UIKit/UIKit.h>
@class Class1, Class2;
@interface TabbarController : UITabBarController
{
Class1 *class1;
Class2 *class2;
UINavigationController *nav1,*nav2;
}
@end
//.m 文件
@implementation TabbarController
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
[super viewDidLoad];
class1 =[[Class1 alloc] initWithNibName:@"Class1" bundle:nil];
nav1=[[UINavigationController alloc] initWithRootViewController:class1];
class1.title = @"class1";
class1.tabBarItem.image = [UIImage imageNamed:@"tab1.png"];
class1.navigationController.navigationBar.hidden = TRUE;
class2 =[[Class2 alloc] initWithNibName:@"Class2" bundle:nil];
nav2=[[UINavigationController alloc] initWithRootViewController:class2];
class2.tabBarItem.image = [UIImage imageNamed:@"tab2.png"];
class2.title = @"class2";
class2.navigationController.navigationBar.hidden = TRUE;
NSArray *controllers = [NSArray arrayWithObjects:nav1,nav2,nil];
self.viewControllers = controllers;
}
将您的视图重定向到此视图,无论您需要标签栏。
试试这个:
创建委托类的对象
#import "DelegateClass.h"
DelegateClass *appDel;
现在在 .m 类
-(void)viewDidLoad
{
[super viewDidLoad];
appDel= (DelegateClass *)[[UIApplication sharedApplication]delegate];
}
现在只需在导航的视图中执行此操作,
appDel.tabBarController.hidesBottomBarWhenPushed = YES;
这只是一个棘手的部分。它对我很有用:)
你必须使用自定义UItabBarController
。请参阅创建自定义 TabBar 控制器