0

私のアプリでは、NavigationControllerでカスタムUINavigationBarとカスタムUIBarButtonItemを使用しています。私のカスタム(カスタム)NavigationBarはうまく見えますが、私自身のbackBarButtonItemとRightBarButtonItemを配置したいときは間違っています。UINavigationBarの問題

私自身のbackBarButtonItemのインストールは、(PushViewControllerメソッドの後で)まったく動作しません。私はこのコードを使用します:

UIButton *home = [UIButton buttonWithType:UIButtonTypeCustom]; 
    UIImage *homeImage = [UIImage imageNamed:@"Topbarback"]; 

    [home setBackgroundImage:homeImage forState:UIControlStateNormal]; 

    home.frame = CGRectMake(0, 0, 51, 30); 
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] 
            initWithCustomView:home]; 


    [self.navigationItem setBackBarButtonItem:backButton]; 

私自身のrightBarButtonItemもあります。私はNavigationBarでそれを取得することができますが、私はそれをやりたいメソッドを呼び出すことではありません。ここに私のコードは、その1のためです:

UIButton *home = [UIButton buttonWithType:UIButtonTypeCustom]; 
    UIImage *homeImage = [UIImage imageNamed:@"Topbarback"]; 

    [home setBackgroundImage:homeImage forState:UIControlStateNormal]; 

    home.frame = CGRectMake(0, 0, 51, 30); 
    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] 
            initWithCustomView:home]; 
    // self.navigationItem.backBarButtonItem = cancelButton; 

    [self.navigationItem setBackBarButtonItem:cancelButton]; 

いない結果とソリューションのためのインターネット上で探して時間のカップルの後、私はあなたたちが私を助けることができることを願っています!

ありがとうございます!

EDIT:

UIButton *home2 = [UIButton buttonWithType:UIButtonTypeCustom]; 
[home2 setTitle:@"Sort" forState:UIControlStateNormal]; 
[home2.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:15]]; 

UIImage *homeImage2 = [UIImage imageNamed:@"Topbarbutton"]; 

[home2 setBackgroundImage:homeImage2 forState:UIControlStateNormal]; 

home2.frame = CGRectMake(0, 0, 77, 30); 
UIBarButtonItem *cancelButton2 = [[UIBarButtonItem alloc] 
           initWithCustomView:home2]; 
[cancelButton2 setTarget:self]; 
[cancelButton2 setAction:@selector(sorteren)]; 



self.navigationItem.rightBarButtonItem = cancelButton2; 
+0

状況が正しく取得された場合、NavigationBarは別のView Controllerを押すまで、ルートビューコントローラにleftBarButtonとrightBarButtonを正しく表示しますか? – barley

答えて

0

フム、あなたは下のツールバーにボタンを追加追加したいようだ:申し訳ありませんが、最後の問題のために、間違ったコードを掲載しましたか?

UIBarButtonItem *myButton = [[UIBarButtonItem alloc] initWithTitle:@"Title" target:self action:@selector(myButtonClicked:)]; 
    [toolbar setItems:[NSArray arrayWithObjects:myButton, nil]]; 
+0

いいえ、NavigationBarを使っています – Jelle

0

backBarButtonItemそれが表示されます、あなたはのUIViewControllerの上に設定されますが、そのビューが表示されているとき、それは表示されません場合にのみ、そのビューとキャッチがあります:それはあなたがそれを行うことができる方法です戻ってくる人です。

backBarButtonItem
戻るボタンがナビゲーションバーに必要とされているときに使用するバーボタンアイテム。
@property(アトミック、保持)UIBarButtonItem * backBarButtonItem
議論
このナビゲーション項目が直ちにスタックの一番上の項目の下にある場合、ナビゲーションコントローラは、このナビゲーション項目からナビゲーションバーの戻るボタンを導出します。このプロパティがnilの場合、ナビゲーション項目はtitleプロパティの値を使用して適切な戻るボタンを作成します。戻るボタンのカスタムイメージまたはタイトルを指定する場合は、カスタムバーボタンアイテム(カスタムタイトルまたはイメージ)をこのプロパティに割り当てることができます。バーボタンアイテムを設定するときは、カスタムビューを割り当てないでください。ナビゲーション項目は、バックバーボタンのカスタム表示を無視します。
このプロパティのデフォルト値はnilです。


および方法は、[戻る]ボタン
について

You could use this method to create your button

- (id)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action 

編集
呼ばれる@selectorを設定する必要が呼び出されていないためUIButtonを作成せず、UIBar用に移動します。ボタンを直接クリックします。
backBarButtonItemを作成する方法は次のとおりです。

+0

私は、そのビューが戻ってこないときに表示されることを理解しますが、表示されません。カジュアルな青のbackBarButtonItemは表示されますが、カスタマイズされたbarBackButtonItemは表示されません。 – Jelle

+0

2番目の問題について:間違ったコードを投稿しました。 (それは今あります)あなたが見るように、私はセレクタを呼び出しますが、それは動作しません。 – Jelle

+0

あなたのために@JelleAges第2の問題あなたが呼び出しているメソッドを追加することができます –