2011-07-29 9 views
0

次のコードを実装して、ナビゲーションバーにbackbuttonbaritemを表示しました。iPhoneで正しく動作しないBackButtonBarItem

[mapNavigationItem setTitle:@"Tracking"]; 
[mapNavigationItem setRightBarButtonItem:nil]; 
[mapNavigationItem setLeftBarButtonItem:nil]; 

UIBarButtonItem *stopTrackingBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Stop Tracking" style:UIBarButtonItemStylePlain target:nil action:@selector(stopTracking)]; 
[mapNavigationItem setBackBarButtonItem:stopTrackingBarButton]; 
[mapNavigationBar pushNavigationItem:mapNavigationItem animated:NO]; 
[stopTrackingBarButton release]; 

stopTrackingボタンが画面に表示されますが、タイトルは表示されません。 stopTrackingボタンをクリックすると、消えてからタイトルが表示されます。 誰かが私に何が起こっているか教えてもらえますか?

[OK]を、私はそれ、私はタブバーの項目のいずれかをクリックしたとき、私は、アプリの起動時のナビゲーションバーには2つのボタンを示し、タブバーのボタンとのMapViewを持っている私は

、十分に明確波平と思いますナビゲーションバーのボタンをクリアして、戻るボタンバーのボタン項目のみを追加する必要があります。私はこの段階まで成功しています。 しかし、バックバーボタンの項目をクリックすると消えてしまい、割り当てられたアクションは実行されません。

はFYI:

IBOutlet UINavigationBar *mapNavigationBar; 
IBOutlet UINavigationItem *mapNavigationItem; 

答えて

0

以前のナビゲーションタイトルよりも、背中のボタンに別のタイトルを使用したい場合は、単に新しいビューコントローラをプッシュする前に、それを変更した後、再びそれを変更する必要がありますそれをポップします。

だから、のようなもの:

self.navigationItem.title = @"Stop Tracking"; 
[self.navigationController pushViewController:mapNavigationItem animated:NO]; 

と、このクラスのviewWillAppearで

self.navigationItem.title = @"Tracking"; 

編集:

あなたが戻って、それを設定していけないのナビゲーションコントローラを取るためbackbarbuttonを使用していない場合backBarButtonはleft barButton項目として設定するだけです。

また、両方のタブで同じナビゲーションバーを使用しているようです。良い考えではありません。異なるビューコントローラーから両方のタブビューをロードし、それらのビューに2つの異なるナビゲーションバーを追加します。

+0

こんにちは、ありがとう、しかし、私は十分なはっきりしていなかったと思う、私は私のポストを更新しました、あなたはそれを見てみることができますか? – Suppi

+0

TabBarの両方のボタンはMapViewを使用しているので、2つの異なるView Controllerの読み込みを避けたかったのです。 – Suppi

+0

ほとんどの場合、タブバーは必要ありません。私は別のビューを使用している私は同じビューを使用しているいくつかのために、ツールバー –