0

最初のタッチ後に非アクティブになったという意味で、GoogleMap が機能しなくなったことに気付きました。これは私に考えさせられたので、同じコードで新しいプロジェクトを作成して、それがコードであるかどうかを確認し、それが私の GoogleMaps コードではないことを示すことにしました。ナビゲーション バーとタブ バーの設定方法に関係していると思います。

これは私が持っているものです。NavigationController 内に初期 ViewController があります。このビュー コントローラーは多くのことを行いますが、そのうちの 1 つがビュー コントローラーのプッシュです。UITabBarController を NavigationController スタックにプッシュするボタンがあります。ストーリーボード内に UITabBarController を作成し、そのコントローラーに StoryboardID: GRxTabBarViewController を指定しました。GRxTabBarViewController には、PricesViewController、SavingsViewController、InfoViewController、MapsViewController の 4 つのビュー コントローラーがあります。

次に、これらのコントローラーのヘッダー ファイルと実装ファイルを作成しました。これは、このタブ バー コントローラーとタブ バーをプッシュするために、最初のビュー コントローラーにあるものです。

-(void)pushTabBar
{
        UIStoryboard *iPhoneStoryBoard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
        GRxTabBarViewController *tabViewController = (GRxTabBarViewController*) [iPhoneStoryBoard instantiateViewControllerWithIdentifier:@"GRxTabBarViewController"];

        PricesViewController *pricesController = [tabViewController.viewControllers objectAtIndex:0];

        SavingsViewController *savingsController = [tabViewController.viewControllers objectAtIndex:1];

        InfoViewController *infoController = [tabViewController.viewControllers objectAtIndex:2];

        MapsViewController *mapController = [tabViewController.viewControllers objectAtIndex:3];

        UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:infoController];
        UINavigationController *savingsNav  = [[UINavigationController alloc] initWithRootViewController:savingsController];

        UITabBarItem *tabBarItem1 = [[tabViewController.tabBar items] objectAtIndex:0];
        [tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"tabbar-prices-selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"tabbar-prices-normal"]];
        UITabBarItem *tabBarItem2 = [[tabViewController.tabBar items] objectAtIndex:1];
        [tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:@"tabbar-savings-selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"tabbar-savings-normal"]];
        UITabBarItem *tabBarItem3 = [[tabViewController.tabBar items] objectAtIndex:2];
        [tabBarItem3 setFinishedSelectedImage:[UIImage imageNamed:@"tabbar-info-selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"tabbar-info-normal"]];
        UITabBarItem *tabBarItem4 = [[tabViewController.tabBar items] objectAtIndex:3];
        [tabBarItem4 setFinishedSelectedImage:[UIImage imageNamed:@"tabbar-map-selected"] withFinishedUnselectedImage:[UIImage imageNamed:@"tabbar-map-normal"]];

        [tabViewController setViewControllers:[NSArray arrayWithObjects:pricesController, savingsNav, navController, mapController, nil]];
        [self.navigationController pushViewController:tabViewController animated:YES];
}

GRxTabBarViewController は UITabBarController であり、実装ファイルにこれがあります。

GRxTabBarViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];


    UIButton *backButton = [[UIButton alloc] init];
    [backButton setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];
    [backButton addTarget:self action:@selector(dismissTab) forControlEvents:UIControlEventTouchUpInside];
    backButton.frame = CGRectMake(0, 0, 20.0f, 44.0f);
    UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
    self.navigationItem.leftBarButtonItem = backBarButtonItem;
    self.navigationItem.hidesBackButton = YES;
}

-(void)dismissTab
{
    [self.navigationController popViewControllerAnimated:YES];
}

私は何か間違ったことをしていますか?タブバーの設定が間違っていますか? 誰かが以前にタブバーを押したことがありますか? ガイダンスやヘルプをいただければ幸いです。前もって感謝します!

4

0 に答える 0