15

私のアプリでは、UITabBarController内にUINavigationControllerがあります。すべて正常に動作していますが、ナビゲーションコントローラのタイトルを設定することはできません。私はいくつかの異なる方法を試してみましたが、この問題の解決策はないようです。UITabBarController内のUINavigationController、ナビゲーションコントローラのタイトルを設定する

ご迷惑をおかけして申し訳ございません。

ありがとうございます。

サム

+0

重複:http://stackoverflow.com/questions/2760634/cocoa-touch-setting-uinavigationcontrollers-title-doesnt-work –

+0

ビューコントローラでタイトルを指定してから、ナビゲーションコントローラ正しいタイトルが適用されますか? – ader

+0

ビューコントローラでタイトルを指定しています。ありがとう。サム。 – shoughton123

答えて

38

、それはだった:

self.tabBarController.navigationItem.title = @"title"; 
2
self.navigationItem.title = @"Your Title" 

すべてのケースのための作品。私にとって

+1

私はこれを試して、それは動作しません。ありがとう、結構です! – shoughton123

+1

これはうまくいくはずです。 'self.navigationItem'がnilを返さないことを確認してください。 nilの場合は、接続を確認してください。 – Gobot

+0

xibまたはストーリーボードから読み込んでいる場合は、 –

1

次は正常に動作します:あなたの異なるviewControllers initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNilで、これ行わ付き

UINavigationController *navContr1; 
UINavigationController *navContr2; 

UIViewController *viewController1, *viewController2; 

viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil] autorelease]; 
viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil] autorelease]; 



navContr1  = [[[UINavigationController alloc] initWithRootViewController:viewController1] autorelease]; 
navContr2  = [[[UINavigationController alloc] initWithRootViewController:viewController2] autorelease]; 


self.tabBarController = [[[UITabBarController alloc] init] autorelease]; 
//self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil]; 
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navContr1, navContr2, nil]; 

self.window.rootViewController = self.tabBarController; 
[self.window makeKeyAndVisible]; 

- あなたは次の行にタイトルを変更することができます方法:

appDelegateDidFinishLaunching:方法でコントローラを開始します。

self.title = @"Your Title"; 

Good Luck。

+0

がない場合、navigationItemをviewControllerにドラッグしてみてください。残念ながら、私はすでにかなり深いアプリですので、この正確なメソッドを使用することはできませんが、それは違う。しかし、自己をやって。タイトルは機能しません、self.titleはタブバーのタイトルを設定します。しかし、ありがとう! – shoughton123

+0

何についてself.navigationController.title = @ "new title"? – pmk

0

ドキュメントのUIViewControllerクラスをご覧ください。 UINavigationItemを指すプロパティがあり、プロパティはtitleを指しています。ナビゲーション項目へのポインタがnilを返す場合は、コントローラを正しく接続していない必要があります。私は最終的に答えを見つけ

0

self.titleは常にあなたのViewControllerのrootViewControllerオブジェクトのタイルを設定します。

お持ちの場合は、あなたのviewController & rootViewControllerUINavigationControllerあり、その後、self.titleUINavigationControllerのタイトルを設定します。

あなたはUIViewControllerオブジェクトとUITabViewControllerを初期化した場合も同様に、その後、self.title意志がUITabViewControllerUITabBarに、インデックスのタイトル対応するボタンに適用されます。

したがって、self.titleviewControllerを保持しているオブジェクトに適用されます。

関連する問題