3

開始時にナビゲーションバーを持つView Controllerがあります。
いくつかの UIViewConrollers の後、4 つのタブ バーと各タブ バーに 4 つのビュー コントローラーを作成したタブバー コントローラーを追加しました。
各タブに関連するナビゲーション バーを含むタブバーを作成すると、上部に 2 つのナビゲーション バーが表示されます。ナビゲーション バーなしでタブバーを作成すると、1 つのタブバーのみが表示されますが、各タブ ビュー コントローラーに対応するタイトルをそのナビゲーションに追加することはできません。 bar
タブバーを作成したコードは次のとおりです

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];
4

5 に答える 5

6

ビュー コントローラへの参照を取得し、navigationItemそのtitle.

[[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];

編集:タブ バー コントローラーはナビゲーション コントローラー内にあるため、最初にタブ バー コントローラーへの参照を取得する必要があります。ビューコントローラー[[[self tabBarController] navigationItem] setTitle:...]のメソッドを試してください。viewDidLoad

于 2012-07-17T05:54:06.653 に答える
2

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で上記のイニシャライザーを定義します。

于 2012-07-17T06:07:07.240 に答える
0

タブバー コントロールのタイトルを設定することはできません。すべてのビュー コントローラーで UINavigationBar を使用する必要があります。

UINavigationBar の場合: ナビゲーション バーを xib/nib にドラッグしてから、タイトルを追加するか、プログラムで実行します

于 2012-07-17T17:52:35.537 に答える
0

ナビゲーション バーのタイトルを設定することはできません。ナビゲーションのビューまたはサブ ビューのタイトルを設定します。self.title=@"ようこそ"; タイトルを設定するだけです。

于 2012-07-27T18:18:06.207 に答える