我制作了一个应用程序,其中前 4 个屏幕没有标签栏,但之后每个屏幕都有标签栏。所以我在每个 nib 文件中添加了标签栏。
我如何实现标签栏使其正常工作。
帮我!!
我制作了一个应用程序,其中前 4 个屏幕没有标签栏,但之后每个屏幕都有标签栏。所以我在每个 nib 文件中添加了标签栏。
我如何实现标签栏使其正常工作。
帮我!!
在您的 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。
没有看到代码很难看出哪里出错了,所以我建议你给开发中心一个机会:)