我制作了一个应用,其中前4个屏幕没有标签栏但是之后每个屏幕都有标签栏。 所以我在每个nib文件中添加了tabbar。
如何实现tabbar以便它正常工作。
帮助我!!
答案 0 :(得分:0)
如果没有看到代码,很难看出错误发生在哪里,所以我建议你给dev centre一个去吧:)
答案 1 :(得分:0)
在didFinishLaunching中创建tabBarController,但只有在显示没有TabBar的前4个屏幕后才显示它。这是默认的didFinishLaunching,当您选择标准TabBar应用程序模板时由Xcode生成:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[viewController1, viewController2];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
在这里你应该替换这一行:
self.window.rootViewController = self.tabBarController;
显示您的控制器。像这样:
LoginViewController *loginViewController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
loginViewController.delegate = self;
self.window.rootViewController = loginViewController;
然后,当您删除最后一个屏幕并想要显示标签栏时,请写下:
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.window.rootViewController = self.tabBarController;
主要思想是你只需更改应用程序窗口的rootViewController 。