2016-07-19 7 views
0

iOS 9에서 탭에 표시되는보기 컨트롤러는 tabBarItem입니다. 그러나 탭 막대 컨트롤러는 필요할 때마다 각 탭에 대한보기 컨트롤러 만로드합니다. 처음에는 탭 1에 대한보기 컨트롤러 만로드합니다 (앱이 첫 번째 탭에서 실행되는 경우). 따라서 스토리 보드에서 각 탭 항목의 제목을 설정하지 않으면 첫 번째 탭만이 그 당시에로드 된 유일한보기 컨트롤러이기 때문에 제목을 표시하며 나머지는 해당 아이콘 만 표시합니다. 아이콘이 현지화 될 필요가 없기 때문에 스토리 보드).iOS : 탭을 선택하기 전의 탭 표시 줄 항목 제목

스토리 보드를 통하지 않고 모든 탭의 제목을 어떻게 설정할 수 있습니까?

답변

1

당신은 tabBarItem 제목을 배열로 모든 타이틀을 놓고, 사전 설정할 수 있습니다 :

if let tabTitles = self.tabBarController?.tabBar.items as? [UITabBarItem] 
    { 
     tabTitles[0].title = "Messages" 
     tabTitles[1].title = "Contacts" 
    } 
+0

굉장! 그 덕분에, 고마워! – RyJ

0

코드를 희망 아래의 도움말을 시도하면

// MyTabBarController.h

#import <UIKit/UIKit.h> 
@interface MyTabBarController : UITabBarController 
@end 

// MyTabBarController.m

#import "MyTabBarController.h" 
@interface MyTabBarController() 

@end 

@implementation MyTabBarController 

- (void)viewDidLoad {[super viewDidLoad]; 
[self customizedTabbar]; 
} 
-(void)customizedTabbar 
{ 
UITabBar *tabBar = self.tabBar; 
UITabBarItem *item0 = [tabBar.items objectAtIndex:0]; 
UITabBarItem *item1 = [tabBar.items objectAtIndex:1]; 

UIImage *img1= [[UIImage imageNamed:@"t1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

UIImage * img1_sel= [[UIImage imageNamed:@"t1_sel"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

    UIImage *img2= [[UIImage imageNamed:@"t2"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

UIImage *img2_sel= [[UIImage imageNamed:@"t2_sel"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

item0 = [item0 initWithTitle:@"Tab1" image:img1 selectedImage:img1_sel]; 

item1 = [item1 initWithTitle:@"Tab2" image:imag2 selectedImage:img2_sel]; 
} 

감사합니다.