2012-04-03 8 views
1

Storyboards를 사용하여 내 앱을 만들었습니다. UITabBarController와 NavigationController가 포함되어 있습니다. 색조 색으로 내 응용 프로그램을 사용자 지정하려고하는데 Tabbar에 대한 사용자 지정 색을 설정할 수있었습니다. 나는 rootViewController에서 tabbar에 접근 할 수 있었지만 탐색 바에 접근 할 수 없었다. 어쨌든 쉽게 접근 할 수 있습니까? 내 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

당신이 탐색 컨트롤러를 사용하는 경우, 그들에게 탭 표시 줄 컨트롤러에 의해 관리되는 뷰 컨트롤러를 포함 할 것으로 예상한다.

NSLog(@"%@", [self.tabBarController viewControllers]);을 시도해보고 네비게이션 컨트롤러 또는 사용자 지정 컨트롤러 목록이 있는지 확인하십시오. 예를 들어, 나는 탐색없이 내 탭 표시 줄에 의해 촉발 된 두 개의 뷰 컨트롤러와 하나 하나를 생성하고, 상기 라인을 보여줍니다

(
    "<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.

관련 문제