2010-11-22 8 views
8

私はプログラムでUINavigationBarをUIViewに追加していますが、今度はUIBarButtonItemを追加する必要があります。私は、次を使用しようとしています:独立したUINavigationBarにUIBarButtonItemを追加できません

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissView)]; 
[header setItems:[NSArray arrayWithObjects:doneButton, nil] animated:NO]; 
[doneButton release]; 

マイアプリのクラッシュと私はコンソールでこれを見つける:誰かが私がここで間違って何をやっていると指摘してくださいできれば

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIBarButtonItem setNavigationBar:]: unrecognized selector sent to instance 0x4b75c00'

はそれをお願い申し上げます。

ありがとうございました。 Ricky。

答えて

16

UINavigationBarは、UINavigationItemのオブジェクトの配列を受け入れます。各オブジェクトには、ナビゲーション階層の特定のレベルに関するプロパティが含まれています。新しいUINavigationItemを作成し、そのrightBarButtonItemプロパティを完了ボタンに設定することをお勧めします。

+0

ありがとうございました! –

+0

まだiOS 7と完璧に動作します。ありがとうございます! – user3344977

4

現在、回答として新しいUINavigationItemを作成する必要はありません。対照的に、既にビューを含むペンで初期化されたUINavigationBarがある場合は、UINavigationBartopItemプロパティにUINavigationItemを追加することができます。このようなもの:

UIBarButtonItem *closeBtn = [[UIBarButtonItem alloc] initWithTitle:@"Close" 
                  style:UIBarButtonItemStyleBordered 
                  target:self 
                  action:@selector(closeBtnPressed)]; 
self.navigationBar.topItem.leftBarButtonItem = closeBtn; 
[closeBtn release]; 
関連する問題