두 개의 탭이있는 UITabBarController를 설정했습니다. 하나는 간단한 UIViewController이고 다른 하나는 두 번째 UIViewController를 rootController로 사용하는 UINavigationController입니다 (나중에 UITableView를 설정하는 데 사용됩니다). 제 질문은 탭의 이름 지정 (즉, 각 UITabBarItem의 제목 설정)에 관한 것입니다.UINavigationController에서 UITabBarItem 제목을 설정 하시겠습니까?
첫 번째 탭 (간단한 UIViewController)에 대해 컨트롤러 - 초기화 메소드에 다음을 추가했습니다.
// FROM -[MapController init]
- (id)init {
self = [super init];
if(self) {
UITabBarItem *tabBarItem = [self tabBarItem];
[tabBarItem setTitle:@"ONE"];
}
return self;
}
다른 탭에 대해서는 두 번째 컨트롤러 init (rootController)에 추가했습니다 (아래 참조).
// FROM -[TableController init]
- (id)init {
self = [super init];
if(self) {
UITabBarItem *tabBarItem = [[self navigationController] tabBarItem];
[tabBarItem setTitle:@"TWO"];
}
return self;
}
내가 첫 번째 탭은 "ONE은"두 번째는 비어라는 응용 프로그램을 실행할 때와 같은 현재는, 표시되지 올바른 장소에 두 번째 tabBarItem 제목을 설정하고있다. 또한 tabBarItem (위)은 값을 출력하거나 디버거를 통해 볼 때 nil을 표시합니다.
EDIT_001 : 내가 처음 UITabBarController가에 추가하기위한 준비 컨트롤러를 만들 때 AppDelegate에
에서 추가 된 전체 코드는 내가 제대로 AppDelegate에 내에서 UITabBarItem을 설정할 수 있습니다. 그러나 저는 개인용 컨트롤러 - 깔끔함을위한 최초의 방법으로 이것을하고 싶었습니다.
// UITabBarController
UITabBarController *tempRoot = [[UITabBarController alloc] init];
[self setRootController:tempRoot];
[tempRoot release];
NSMutableArray *tabBarControllers = [[NSMutableArray alloc] init];
// UIViewController ONE
MapController *mapController = [[MapController alloc] init];
[tabBarControllers addObject:mapController];
[mapController release];
// UITableView TWO
TableController *rootTableController = [[TableController alloc] init];
UINavigationController *tempNavController = [[UINavigationController alloc] initWithRootViewController:rootTableController];
[rootTableController release];
[tabBarControllers addObject:tempNavController];
[tempNavController release];
[rootController setViewControllers:tabBarControllers];
[tabBarControllers release];
[window addSubview:[rootController view]];
[window makeKeyAndVisible];
EDIT_002 : 솔루션 지금까지 애플 대리자에서 업데이트 UITabBarItems 예를 들어,
// TABLE CONTROLLER
TableController *tableController = [[TableController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tableController];
[tableController release];
[tabBarControllers addObject:navController];
UITabBarItem *tabBarItem_002 = [navController tabBarItem];
[tabBarItem_002 setTitle:@"TWO"];
[tabBarItem_002 setImage:[UIImage imageNamed:@"GT_TWO.png"]];
[navController release];
EDIT_003 : 은 UINavigationController가있는 UITabBarItem을 설정하는 방법이 또는 (가 보인다) 대리인은 그것을 할 정말 최고의 장소입니다.
self.navigationController.tabBarItem = tabBarItem은 다른 솔루션을 시도하고자 할 때 유용합니다. – Rabiees