1

したがって、新しいビューを追加した1日ほど前まで、このコードが完全に機能していたことを認めなければなりません。そのため、現時点ではかなりイライラしています。

セットアップ:タブバーを含むストーリーボードアプリがあります。AppDelegateには、CoreDataをアタッチするための次のものがあります

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    UINavigationController *navigationController = [[tabBarController viewControllers] objectAtIndex:0];
    GamesViewController *controller = [[navigationController viewControllers] objectAtIndex:0];
    controller.managedObjectContext = self.managedObjectContext;

    return YES;
}

また、AppDelegateには、標準のタブの背景を選択した画像に設定するこのメソッドがありました。

- (void)customizeInterface {    
    UIImage* tabBarBackground = [UIImage imageNamed:@"tab_background"];
    [[UITabBar appearance] setBackgroundImage:tabBarBackground];
}

したがって、タブの前に別のログインビューを追加するまで、これはすべて正常に機能しました。CoreDataが最初に設定されていたものも変更する必要がありました(タブからログイン/初期化ビューに)。以下は、ストーリーボードがどのように見えるかの新しいセットアップです。

これが私のストーリーボードの新しいセットアップです

アプリが読み込まれると...背景画像は最初は以前と同じように表示されますが、最初のタブにのみ表示されます。クリックすると、デフォルトのグラデーションカラーに戻ります。最初の/最初のタブに戻ると、背景は再適用されず、色付きのグラデーションのままになります。

これに合わせて修正されたapplicationDidFinishLaunchingコードは次のとおりです。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //instantiate local context
    NSManagedObjectContext *context = [self managedObjectContext];
    if (!context) {
        // Handle the error.
        NSLog(@"Error: Context is null");
    }

    LoginViewController *rootViewController = [LoginViewController alloc];
    rootViewController.managedObjectContext = context;

    return YES;
}

それで、私がやろうとしたのは、タブバーがロードする最初のVC(GameViewController)のviewDidLoadに移動し、これを追加して問題を修正しようとしたことです。

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"dock_background"]];
}

それは機能しなかったので、AppDelegateにあったのと同じ元のコードを使用してみましたが、これも機能しませんでした。

- (void)viewDidLoad {
    [super viewDidLoad];
    UIImage* tabBarBackground = [UIImage imageNamed:@"tab_background"];
    [[UITabBar appearance] setBackgroundImage:tabBarBackground];
}

だから...私はちょっと立ち往生しています。私はとても明白なことをしなければならない(またはしていない)必要があります...そこに誰かが何かヒント/ポインタを持っていますか?

トンありがとう-ドリュー

4

1 に答える 1

0

Delegate.hファイル

@interface AppDelegate:UIResponder

@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) UIImageView *imgV;
@property (strong, nonatomic) UIViewController *viewController;
@property (strong, nonatomic) UITabBarController *tabBarController;

@end

Delegate.mファイル

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.

        self.viewController = [[DeskboardVctr alloc] initWithNibName:@"DeskboardVctr" bundle:nil];




    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.delegate=self;
    self.imgV=[[UIImageView alloc] init];
    self.imgV.frame=CGRectMake(0, 0, 1024, 49);
    [[self.tabBarController tabBar] insertSubview:self.imgV atIndex:1];
    self.tabBarController.delegate=self;
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];

    return YES;
}

タブバーデリゲートメソッド

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
    NSUInteger index=[[tabBarController viewControllers] indexOfObject:viewController];
        switch (index) {
            case 0:
                self.imgV.image=[UIImage imageNamed:@"t1.png"];
                break;
            case 1:
                self.imgV.image=[UIImage imageNamed:@"t2.png"];
                break;
            case 2:
                self.imgV.image=[UIImage imageNamed:@"t3.png"];
                break;
            case 3:
                self.imgV.image=[UIImage imageNamed:@"t4.png"];
                break;
            case 4:
                self.imgV.image=[UIImage imageNamed:@"t5.png"];
                break;
            default:
                break;
        }
    return YES;
}

あなたがこの感謝を助けることができることを願っています

于 2012-08-01T04:38:39.133 に答える