实现TabBar应用程序

时间:2012-08-21 11:24:42

标签: iphone ios xcode uitabbarcontroller

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

如何实现tabbar以便它正常工作。

帮助我!!

2 个答案:

答案 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