0

アプリ用のカスタム タブバーを作成したいのですが、すでにコードを最初のビュー コントローラーに配置しようとしていますが、うまくいきます。しかし、ここに問題があります。コードを宣言してAppdelegate.mに入れたいのですが、実行すると、画像のない黒いタブバーコントローラーしか表示されません。参考までに、ストーリーボードからタブバーコントローラーを埋め込みます。

ここにコードがあります

    UIImage *selectedImage0   = [UIImage imageNamed:@"img1.png"];
    UIImage *unselectedImage0 = [UIImage imageNamed:@"img1hov.png"];

    UIImage *selectedImage1   = [UIImage imageNamed:@"img2.png"];
    UIImage *unselectedImage1 = [UIImage imageNamed:@"img2hov.png"];

    UIImage *selectedImage2   = [UIImage imageNamed:@"img3.png"];
    UIImage *unselectedImage2 = [UIImage imageNamed:@"img3hov.png"];

    UIImage *selectedImage3   = [UIImage imageNamed:@"img4.png"];
    UIImage *unselectedImage3 = [UIImage imageNamed:@"img4hov.png"];

    UIImage *selectedImage4   = [UIImage imageNamed:@"img5.png"];
    UIImage *unselectedImage4 = [UIImage imageNamed:@"img5hov.png"];



    UITabBar *tabBar = self.tabBarController.tabBar;
    UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
    UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
    UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
    UITabBarItem *item3 = [tabBar.items objectAtIndex:3];
    UITabBarItem *item4 = [tabBar.items objectAtIndex:4];

    tabBar.backgroundImage = [UIImage imageNamed:@"back_menu.png"];


    [item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
    [item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
    [item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2];
    [item3 setFinishedSelectedImage:selectedImage3 withFinishedUnselectedImage:unselectedImage3];
    [item4 setFinishedSelectedImage:selectedImage4 withFinishedUnselectedImage:unselectedImage4];
4

2 に答える 2

0

そのコードは私にとってはうまく見えます。appDelegateにどのように追加UIViewControllerしますか? UITabBarControllerこんな感じじゃない?

//appDelegate.h
@property (nonatomic, strong) SomeViewController *viewController;
@property (nonatomic, strong) UITabBarController *tabBarController;
//and synthesize those

//appDelegate.m
self.viewController = [[SomeViewController alloc]  initWithNibName:@"SomeViewController" bundle:nil];

UITabBarController *tabBarController = [[UITabBarController alloc] init];
[tabBarController setViewControllers:[NSArray arrayWithObjects:self.viewController, nil];

を使用して、どこからでも appDelegate にアクセスself.tabBarControllerして常駐できます。self.viewController((AppDelegate *)[UIApplication sharedApplication].delegate)

于 2013-02-21T05:04:30.463 に答える