2012-07-17 3 views
2

시작하는 데 탐색 막대가있는보기 컨트롤러가 있습니다.
일부 UIViewConrollers 후에 각 탭 막대에 4 개의 탭 막대와 4 개의보기 컨트롤러를 만든 탭바 컨트롤러를 추가했습니다.
이제 각 탭과 관련된 탐색 모음이있는 탭 모음을 만들면 상단에 두 개의 탐색 모음이 표시됩니다. 탐색 모음이없는 탭 모음을 만들면 하나의 탭 모음 만 표시되지만 각 탭보기 컨트롤러에 해당하는 제목을 추가 할 수는 없습니다 네비게이션 바
는 여기에 당신은 뷰 컨트롤러의 navigationItem에의 참조를 취득하고 title를 설정할 수있는 탭 표시 줄보기 컨트롤러에서 하위보기의 탐색 모음 제목을 설정하는 방법은 무엇입니까?

EventDetailViewController *firstViewController = [[EventDetailViewController alloc]init]; 
firstViewController.tabBarItem = [[[UITabBarItem alloc]initWithTitle:@"Home" image:[UIImage imageNamed:@"Multimedia-Icon-Off.png"] tag:2]autorelease];         MoreInfo *secondViewController = [[MoreInfo alloc]init]; 
secondViewController.tabBarItem = [[[UITabBarItem alloc]initWithTitle:@"Info" image:[UIImage imageNamed:@"Review-Icon-Off.png"] tag:0]autorelease]; 

PlaceInfoViewController *thirdViewController = [[PlaceInfoViewController alloc]init]; 
thirdViewController.tabBarItem = [[[UITabBarItem alloc]initWithTitle:@"Lugar" image:[UIImage imageNamed:@"Place-icon-OFF.png"] tag:1]autorelease]; 

FavoritesViewController *forthViewController = [[FavoritesViewController alloc]init]; 
forthViewController.tabBarItem = [[[UITabBarItem alloc]initWithTitle:@"Compartir" image:[UIImage imageNamed:@"Compartir-Icon-Off.png"] tag:3]autorelease]; 

UITabBarController *tabBarController = [[UITabBarController alloc] initWithNibName:nil bundle:nil]; 
tabBarController.viewControllers = [[NSArray alloc] initWithObjects:firstViewController, secondViewController, thirdViewController, forthViewController, nil]; 
tabBarController.view.frame = self.view.frame; 
[self.view addSubview:tabBarController.view]; 

[firstViewController release]; 
[secondViewController release]; 
[thirdViewController release]; 
[forthViewController release]; 
+0

질문이 명확하지 않습니다. 네비게이션 바 제목 설정을 원하십니까? – QueueOverFlow

+0

@stackBlue 예 .. 하위보기 컨트롤러에서 내비게이션 막대의 제목을 원합니다 ... –

+0

try .. in viewDidLoad. self.title = @ "내 제목"; – QueueOverFlow

답변

0

프로그래밍 할 부모의 네비게이션 항목의 참조를 자식 뷰 컨트롤러에 넘겨줌으로써 해결할 수 있습니다. :)

5

을 생성하는 코드입니다.

[[aViewController navigationItem] setTitle:@"My Title"]; 

모든보기 컨트롤러를 아직 탐색하지 않은 경우 탐색 컨트롤러에 포함하려는 경우가 있습니다. 그렇게하면 탐색 항목이 포함 된 탐색 모음이 실제로 만들어 지므로 직접 그릴 필요가 없습니다.

NSMutableArray *tabs = [NSMutableArray array]; 

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:firstViewController]; 
[tabs addObject:nav]; 
nav = [[UINavigationController alloc] initWithRootViewController:secondViewController]; 
[tabs addObject:nav]; 
... 

[tabBarController setViewControllers:tabs]; 

편집 : 먼저 탭 표시 줄 컨트롤러에 대한 참조를 얻을 필요가 귀하의 탭 바 컨트롤러, 탐색 컨트롤러 안에 있습니다. 보기 컨트롤러의 viewDidLoad 메소드에서 [[[self tabBarController] navigationItem] setTitle:...]을 시도하십시오.

+0

난 이미 두 가지 방법을 시도 ... 첫 번째 방법은 작동하지 않으며 두 번째 방법은 2 탐색 모음이있을거야 그리고 난 부모 탐색 그 이유는 내가보기 컨트롤러 대신 탐색 컨트롤러를 사용하지 않았기 때문입니다 ... 그래서 하위보기 컨트롤러의 부모 탐색 막대에 액세스하는 다른 방법을 제안하십시오 ... –

+0

@Shubham 탐색 컨트롤러에 이미 탭 막대 컨트롤러가 있습니까 ? –

+0

예 .. 탭 막대는 이미 내비게이션 컨트롤러에 있습니다 ... –

1

EventDetailViewController.m로 이동하여 아래 메소드를 정의하십시오.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization 
    self.title = NSLocalizedString(@"Catalogues", @"Catalogues"); 
    //self.tabBarItem.image = [UIImage imageNamed:@"book"]; 

} 
return self; 
} 

각 viewController.m에서 위의 초기화 프로그램을 정의하면 작동합니다.

TabBar의 control.You에 대한
+0

그것도 작동하지 않으며 또한 개체에 blSubcat 속성을 찾을 수 없습니다 .. –

+0

그것은 여전히 ​​작동하지 않습니다 .. –

0

당신은 설정할 수 없습니다 제목 모든 viewcontrollers UINavigationBar를 들어

에 UINavigationBar를 사용해야합니다 : 다음 제목을 추가하려면 XIB/펜촉에 드래그 이동 줄거나 내가 가진

0

네비게이션 바 제목을 설정할 수 없습니다. 네비게이션에서 뷰 또는 하위 뷰의 제목을 설정하십시오. self.title = @ "환영합니다"; 단순히 제목을 설정하십시오.