2009-08-25 7 views
2

TabBarController에 viewController를 추가하고 있습니다. 사용자 정의 클래스 및 펜촉에서 ViewController를 추가하면 아이콘이 tabBar에 표시되지 않습니다.Tabbar 컨트롤러 아이콘 추가하기 iPhone

이렇게 초기화하면 아이콘이 표시되지 않습니다.

viewController = [[FlashCardViewController alloc] initWithNibName:@"FlashCardViewController" bundle:[NSBundle mainBundle]]; 

그러나 일반적인 viewController를 만드는 것은 효과가 있습니다.

viewController = [[UIViewController alloc] initWithNibName:nil bundle:nil]; 

여기에 이미지와 제목이 추가됩니다.

viewController.title = @"Quiz"; 
viewController.tabBarItem.image = [UIImage imageNamed:@"magnifying-glass.png"]; 

NIB에서로드 할 경우 아이콘을 표시하려면 어떻게해야합니까?

답변

1

당신은 사용자 정의 뷰 컨트롤러의 viewDidLoad 방법 내부 tabBarItem.image 세터에 전화를 추가 할 수 있습니다

@implementation FlashCardViewController 
//... 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.tabBarItem.image = [UIImage imageNamed:@"magnifying-glass.png"]; 
} 
//... 
@end

편집 : OK, 그 작동하지 않았다, 그래서. 시도 :

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UIImage *image = [UIImage imageNamed:@"magnifying-glass.png"]; 
    self.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"string" 
                image:image 
                 tag:0] autorelease]; 
}
+0

제안 사항이 제대로 작동 할 것이라고 생각했지만 여전히 아이콘이 없습니다. 다른 아이디어 팀? – Bryan

+0

전체 탭 표시 줄 항목을 직접 초기화 할 수 있습니까? 위의 편집 된 코드를 참조하십시오. – Tim

+0

감사합니다. 다른 지점에서 이미지와 제목을 덮어 썼습니다. 이것은 실제로 작동합니다! 탭을 클릭하여 뷰를로드 할 때까지 tabBarItem에는 아이콘이나 레이블이 없습니다. 어떤 아이디어? – Bryan

0

왜 당신이 FlashCardViewController 초기화에 [NSBundle mainbundle]에 전달하는? 일반적으로 작업 예제에 따라 nil을 전달합니다 ...

+0

나는 그게 문제가 될지도 모른다고 생각했고, 그것을 nil로 바꿨지 만 아무런 차이가 없었기 때문에 나는 전에 가지고 있던 것들을 고수했다. TabBarController가 아닌 FlashCardViewController를 자체적으로로드했습니다. 왜 NSBundle mainbubdle을 전달하는지 잘 모르겠습니다. 그게 뭐라 구요? – Bryan