2012-04-03 8 views
1

私はストーリーボードを使用して自分のアプリを構築しました。私はUITabBarControllerとNavigationControllerを持っています。 私は色合いの色で自分のアプリケーションをカスタマイズしようとしています。私はTabbarのカスタム色を設定することができました。私はrootViewControllerからタブバーにアクセスできましたが、ナビゲーションバーにアクセスすることはできません。とにかく私はこれに簡単にアクセスできますか? 私のAppDelegateコードのサンプルは以下の通りです。iOS - AppDelegateのアクセスナビゲーションコントローラ

おかげ

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions 
{ 
    self.tabBarController = (UITabBarController*)self.window.rootViewController; 
    UITabBar *tabBar = self.tabBarController.tabBar; 
    [tabBar setSelectedImageTintColor:[UIColor greenColor]]; 
    tabBar.tintColor = [UIColor colorWithRed:0.4 green:0.522 blue:0.129 alpha:1]; 

    //This bit doesnt work 
    UINavigationController *navCon = self.tabBarController.navigationController; 
    navCon.navigationBar.tintColor = [UIColor colorWithRed:0.384 green:0.259 blue:0.161  alpha:1]; 

    return YES;  
} 

答えて

2

あなたはナビゲーションコントローラを使用している場合は、それらをタブバーコントローラによって管理されているView Controllerを埋め込むことが期待されます。

NSLog(@"%@", [self.tabBarController viewControllers]);を試して、ナビゲーションコントローラまたはカスタムコントローラの一覧が表示されているかどうかを確認してください。例えば、私は、ナビゲーションなしで私のタブバーによってトリガーされる2つのビューコントローラ、と1と1を作成し、上記の行を示しています

(
    "<UINavigationController: 0x6a35f20>", 
    "<SecondViewController: 0x6a39500>") 

だから、私は[[self.tabBarController viewControllers] objectAtIndex:0]として地雷を得ることができます。

+0

は完全に働きました。どうもありがとう –

2

あなたがIBOutletを使っていないと仮定すると、XIBファイルと共に使用することをお勧めします。例えば、ヘッダファイルで:.M、スイッチで

IBOutlet UINavigationBar *aNavBar; 

そして:

UINavigationController *navCon = self.tabBarController.navigationController; 
navCon.navigationBar.tintColor = [UIColor colorWithRed:0.384 green:0.259 blue:0.161  alpha:1]; 

付:

[aNavBar setTintColor:[UIColor colorWithRed:0.384 green:0.259 blue:0.161  alpha:1]]; 

そして、そこに行きます!私はこれを素早く作ったので、それがうまくいくかどうか教えてください。
- ジャスティンA.

関連する問題