0

我制作了一个应用程序,其中前 4 个屏幕没有标签栏,但之后每个屏幕都有标签栏。所以我在每个 nib 文件中添加了标签栏。

我如何实现标签栏使其正常工作。

帮我!!

4

2 回答 2

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

于 2012-08-21T11:35:39.790 回答
0

没有看到代码很难看出哪里出错了,所以我建议你给开发中心一个机会:)

于 2012-08-21T11:32:46.090 回答