1

我正在开发一个带有 3 个标签的标签栏应用程序。

我用他们受人尊敬的 RootViewControllers 创建了一个UITabBarControllerwith 3 UINavigationController,它工作得非常好。

现在我的所有视图中都有一个主页按钮。当我单击它时,假设显示一个HomeView(不是第RootViewController一个UINavigationController)没有选择选项卡。

谁能帮我这个?

我已经尝试了大多数与如何取消选择所有选项卡相关的链接,UITabBarController但没有一个有完美的答案..!!

这是我的代码:

-(void)setViews
{
   viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
    UIViewController *viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil] autorelease];
    UIViewController *viewController3 = [[[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil] autorelease];
    viewController4 = [[CalculatorsView alloc] initWithNibName:@"CalculatorsView" bundle:nil];

    navigationController1=[[UINavigationController alloc]initWithRootViewController:viewController1];
    [navigationController1.navigationBar setBackgroundImage:[UIImage imageNamed:@"title-bar.png"] forBarMetrics:UIBarMetricsDefault];
    UINavigationController *navigationController2=[[[UINavigationController alloc]initWithRootViewController:viewController2] autorelease];
    [navigationController2.navigationBar setBackgroundImage:[UIImage imageNamed:@"title-bar.png"] forBarMetrics:UIBarMetricsDefault];
    UINavigationController *navigationController3=[[[UINavigationController alloc]initWithRootViewController:viewController3] autorelease];
    [navigationController3.navigationBar setBackgroundImage:[UIImage imageNamed:@"title-bar.png"] forBarMetrics:UIBarMetricsDefault];
    UINavigationController *navigationController4=[[[UINavigationController alloc]initWithRootViewController:viewController4] autorelease];
    [navigationController4.navigationBar setBackgroundImage:[UIImage imageNamed:@"title-bar.png"] forBarMetrics:UIBarMetricsDefault];

    [navigationController1.navigationBar setHidden:YES];
    [navigationController2.navigationBar setHidden:YES];
    [navigationController3.navigationBar setHidden:YES];
    [navigationController4.navigationBar setHidden:YES];

    self.tabBarController = [[[UITabBarController alloc] init] autorelease];

    self.tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"tabbar-0.png"];
    [[[self tabBarController]tabBar]setSelectionIndicatorImage:[UIImage imageNamed:@"transparent.png"]];
    [self.tabBarController setDelegate:self];
    self.tabBarController.viewControllers = @[navigationController1, navigationController2,navigationController3];
    appDelegate.window.rootViewController = self.tabBarController;
}

#pragma mark TABBAR DELEGATE

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
    if (tabBarController.selectedIndex == 0)
    {
        self.tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"tabbar-1.png"];
        [self.navigationController1 setViewControllers:@ [viewController4] animated:NO];
    }
    else if (tabBarController.selectedIndex == 1)
    {
        self.tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"tabbar-2.png"];
    }
    else if (tabBarController.selectedIndex == 2)
    {
        self.tabBarController.tabBar.backgroundImage = [UIImage imageNamed:@"tabbar-3.png"];
    }
}

任何人都可以告诉我它甚至可以取消选择所有选项卡吗?

4

0 回答 0