2012-01-26 5 views
1

ドキュメントでは、UINavigationControllerのleftBarButtonItemsおよびrightBarButtonItemsの項目の配列を持つことができ、UIToolBarを作成してボタンとして設定する必要はありません。基本的には、navigationControllerの「戻る」ボタンの隣にある「ホーム」ボタンが必要です。私は私が私のHomeButtonを作成したら、私は私の配列にnavigationBarの戻るボタンを取得する方法がわからなかったleftBarButtonItemsをiOS 5のUINavigationControllerで設定する

BackButtonFromNavigationController HomeBarButtonItem 

:だから、次のようになります。私はrightBarButtonItemとしての私のUIToolBarにiOSの前にそれを持っているようhomeBBIが正しく作成されて知っている

if ([self.navigationItem respondsToSelector:@selector(leftItemsSupplementBackButton)]) { 
    self.navigationItem.leftItemsSupplementBackButton = YES; 
    self.navigationItem.leftBarButtonItem = homeBBI; 
} 

:私はこれを試してみましたが、私は唯一のnavigationControllerのbackBarButtonを参照してください。

smparkes応答ごとに編集された
if ([self.navigationItem respondsToSelector:@selector(setLeftBarButtonItems:)]) { 
    UIBarButtonItem *hButton = [self createHomeButton]; 
    self.navigationController.navigationItem.leftBarButtonItems = [NSArray arrayWithObjects:self.navigationItem.backBarButtonItem, hButton, nil]; 
} 

5.今は左に移動しようとしていますが、同じボタンを使って機能するかどうかを確認しましたが、まだ動作していないようです...

答えて

8

配列。戻るボタンを置き換える代わりにボタン配列を追加するにはleftItemsSupplementBackButtonを使用してください。一度それをしたら、配列が必要なようにも聞こえません。

あなたのボタン配列が空であるため、あなたが見ている動作を得ていると思います。おそらくであるself.navigationItem.backBarButtonItemを追加しています。現在のコントローラの戻るボタンではなく、コントローラの戻るボタンをナビゲーションスタックの一歩先にします。

+0

私のスニペットを更新しましたが、私のボタンはまだ表示されません。 – Crystal

+0

homeBBIがnilでない限り(二重チェックしましたか)、大丈夫ですか?そうでなければ、わからない。 – smparkes

+0

ええ、私は無しではないことを確認したが、残念ながら現れない。チェックを続けます。しかし、応答に感謝! – Crystal

0

私は同じ問題を抱えていました。私の場合、追加のボタンを隠す理由は、私がカスタムタイトルビューを使用していたということでした。

アレイ内のすべての項目を表示する余地がない場合は、タイトル表示(存在する場合)またはバーの右側のボタンと重複するものは表示されません表示されます。

カスタムタイトルビューのサイズを変更しても、私の問題は解決しました。多分、このヒントは他人を助けるでしょう。