2010-11-18 5 views
3

ViewController에서 내 tabbar 이미지를 변경하려고하지만 새 이미지를 표시하려면 각 탭 표시 줄 항목을 클릭해야합니다.ViewController의 탭 막대 항목을 새로 고침/새로 고침 하시겠습니까?

for (CustomTabBarItem *myItem in self.tabBarController.tabBar.items){ 
     myItem.enabled = YES; 

     myItem.badgeValue = @"1"; 

     UIImage *myImage = [[UIImage alloc] initWithContentsOfFile:[[DesignManager sharedManager] getPathOfFile:@"test.png"]]; 

     *myItem.imageSelect= *myImage; // change images of each item. don't appear if I dont click on the item 
} 

사람은 어떻게 바로 이러한 이미지를 표시 할 수있어? 감사합니다.

답변

2

이전 탭 표시 줄 항목을 새 것으로 바꿔야합니다. 그렇지 않으면 이미지를 동적으로 업데이트 할 수 없습니다.

가장 쉬운 방법은 주어진 탭이 나타내는 뷰 컨트롤러의 tabBarItem 속성을 설정하는 것입니다. 해당 뷰 컨트롤러 내에서이 일을 원하는 경우에, 다만 쓰기 : 내가 아는

UIViewController* vc = [tabBarController.viewControllers objectAtIndex: 3]; 
vc.tabBarItem = [[UITabBarItem alloc] initWithTitle: @"title" image: myImage: tag: nil]; 
+0

작동 중! 덕분에 – blade196

2

이 오래된입니다 : 당신이 다른 곳에서이 작업을 수행 할 수

self.tabBarItem = [[UITabBarItem alloc] initWithTitle: @"title" image: myImage: tag: nil]; 

을 또는 앱 위임 말 문제. 배지 값을 다른 활성 탭에서 업데이트해야 할 때 같은 문제가 발생했습니다. 다른 UITabBarItem을 만들면 현재 문제가 해결되지만이 코드를 여러 번 호출하면 메모리 누수가 발생할 수 있습니다. 또한 다른보기 컨트롤러가 탭에 액세스 할 때 새로 생성 된 UITabBarItem에 대한 참조가 없습니다. 내 트릭은

vc.tabBarItem = vc.tabBarItem; 

입니다. 저에게 좋습니다.

+0

고마워요. –

+0

가 작동하지 않습니다. –

관련 문제