1

ストーリーボードを使用してアプリを構築しました。UITabBarController と NavigationController が埋め込まれています。アプリを淡い色でカスタマイズしようとしていますが、タブバーのカスタム色を設定できました。rootViewController からタブバーにアクセスできましたが、ナビゲーション バーにアクセスできません。これに簡単にアクセスできる方法はありますか?私の 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;    
}
4

2 に答える 2

2

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

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

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

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

于 2012-04-03T22:57:18.590 に答える
2

IBOutlet を使用していないと仮定すると、XIB ファイルと一緒に使用することをお勧めします。たとえば、ヘッダー ファイルでは次のようになります。

IBOutlet UINavigationBar *aNavBar;

そして、.m で次のように切り替えます。

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.

于 2012-04-03T23:06:24.170 に答える