2

UIImagePickerControllerのナビゲーションバーボタンを変更しようとしています。これまでのところ私は、右のバーボタンアイテム(「Cancel」ボタンを)変更するだけで管理している:UIImagePickerControllerのナビゲーション項目をカスタマイズする

- (void)navigationController:(UINavigationController *)navigationController   
     willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 

     UINavigationBar *bar = navigationController.navigationBar; 
     UINavigationItem *top = bar.topItem; 
     top.title = @"Photos"; 
     UIImage *buttonImageCancel = [UIImage imageNamed:@"DoneBarButton.png"]; 
     UIButton *buttonCancel = [[UIButton alloc] initWithFrame:CGRectMake(0,5,55, 29)]; 
     [buttonCancel setBackgroundImage:buttonImageCancel forState:UIControlStateNormal]; 
     [buttonCancel addTarget:self action:@selector(imagePickerControllerDidCancel:) forControlEvents:UIControlEventTouchUpInside]; 
     [buttonCancel setTitle:@"Cancel" forState:UIControlStateNormal]; 
     [buttonCancel setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
     [[buttonCancel titleLabel] setFont:[UIFont boldSystemFontOfSize:10]]; 
     UIBarButtonItem *barButtonCancel = [[UIBarButtonItem alloc] initWithCustomView:buttonCancel]; 
     [top setRightBarButtonItem:barButtonCancel]; } 

をしかし、他のビューコントローラ(例えば「フォトライブラリ」)で「キャンセル」ボタンをもう一度古いものです。また、メインピッカーのビューに戻った後、カスタマイズされた「取消」ボタンが再び標準の取消ボタンに置​​き換えられます。 誰もそのボタンを変更する方法を知っていますか?サブクラス化? ありがとうございました!

答えて

1

実装したメソッドは、View Controllerを押したときにのみ呼び出されます。ピッカー全体を変更したい場合は、ナビゲーションコントローラのカテゴリを使用できます。

+0

ありがとうctreave。どのように私はそれを実装するだろうか? – saeppi

+0

UINavigationControllerでカテゴリを作成し、次のようにのように実装:実装UINavigationBar(MyNavigationBar) - (無効)のdrawRect:(CGRect)RECT { //設定ボタンここ } @endあなたがこの[リンク](httpsを試すことができますが//developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocCategories.html#//apple_ref/doc/uid/TP30001163-CH20-TPXREF139) –

+0

UINavigationControllerまたはUINavigationBarの新しいカテゴリですか? – saeppi

関連する問題