2014-02-28 4 views
0

5 TabBarItems가 포함 된 TabBarController가 있습니다. 따라서 해당 항목을 제어하고 싶습니다. UITabBarController을 확장하는 새 클래스를 만들고 TabBarController에 대한 대리자로 만듭니다. <UITabBarControllerDelegate>UITabBar 내부의 UITabBarItem에 액세스 할 수 없습니다.

-(void)viewWillAppear:(BOOL)animated{ 
for (int i=0; i<5; i++) { 
    UITabBarItem *tabItem=[self.tabBarController.tabBar.items objectAtIndex:i]; 
    NSLog(@"Title:-------->%@",[tabItem title]); 
} 

} 

을하지만 인쇄 : 또한 내가 다음과 같이 viewWillAppear 메소드에서 각 TabBarItem의 제목을 인쇄하는 노력이 클래스와 스토리 보드의 TabBarController을 결합,하지만 난 어떤 UITabBarItem에 대한 출구를 만들 수 없습니다 해요 Null foreach item title, 그 TabBarItems를 제어하려면 어떻게해야합니까?

답변

1

문제는 사용자가 UITabBar에 액세스하는 방식입니다. 당신이 말했듯이

, 이미 UITabBarController에서 상속되는 클래스에 배치이 코드를 가지고, 당신은이 효율적으로 사용하여보십시오 UITabBar

self.tabBar 

대신

self.tabBarController.tabBar 

의 액세스한다 코드 :

for(UITabBarItem *item in [self.tabBar items]) { 
    NSLog(@"Title: %@", [item title]); 
} 

다음은 첨부 된 샘플입니다. 계획. Project attached

0
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) 
    { 
     self.title = NSLocalizedString(@"Favorites", @"Favorites"); 
     self.tabBarItem.image = [UIImage imageNamed:@"first"]; 
    } 
    return self; 
} 
관련 문제