3

Appearance プロパティを使用して、アプリのすべてのナビゲーション バーの戻るボタンの背景画像になるように画像を設定しました。applicationDidLoad メソッドで次のコードを使用します。

UIImage *backButton = [UIImage imageNamed:@"btn-nav-back"];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

私の問題は、戻るボタンが表示されるたびに、前のビューの名前が戻るボタンのタイトルとして設定されているため、画像が引き伸ばされることです。タイトルの設定を停止できるシステム全体の方法はありますか? また、実際のView Controllerで戻るボタンのタイトルを空白に設定しようとしても効果はありません:(

[self.navigationItem.backBarButtonItem setTitle:@""];
4

7 に答える 7

2
UIBarButtonItem *customItem = [[[UIBarButtonItem alloc] initWithCustomView:plainButton] autorelease];
self.navigationItem.leftBarButtonItem = customItem; 
[(UIButton*)self.navigationItem.leftBarButtonItem.customView addTarget:self.navigationController action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchUpInside];

カスタム barButtonItem を作成し、デフォルトの戻るボタンと交換します。

于 2012-08-16T06:11:06.437 に答える
1

それが古い投稿であることはわかっていますが、もし私がその投稿に出くわした場合、他の人もそれを探しているに違いありません.

スティーブンの答えに追加するだけです。これにより、通常状態と選択状態のテキストが白くなります。これにより、わずか2行でシステム全体になります。ただし、画像は白いテキストのスペースを占有し、非常に見栄えが悪くなります。

システム全体の戻るボタンの場合、上記のコードを使用します

UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.clearColor()], forState: UIControlState.Normal)
UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.clearColor()], forState: UIControlState.Highlighted)
于 2015-08-02T04:02:46.120 に答える
1

デフォルトの画像と同じ外観が必要な場合は、バックバーボタンの画像を使用せずにこれを行うことができますBackBarButton. 他のコントローラーに移動する前に、次の行を記述してください。

  UIBarButtonItem *backButton = [[[UIBarButtonItem alloc]
      initWithTitle:@"Back"
              style:UIBarButtonItemStyleBordered
             target:nil
             action:nil] autorelease];
  [[viewcontroller navigationItem] setBackBarButtonItem:backButton];  

これで問題は解決します。また、 の別の方法を使用して、必要に応じて画像を変更することもできますbarButton。何か問題を見つけた場合、または別の問題を探していた場合はお知らせください。

于 2012-08-16T03:50:28.553 に答える
1

残念ながら、私が望むことはできないというこの質問を見つけました:(

UIAppearance を使用して UINavigationItem の titleview を設定できますか?

于 2012-08-16T01:56:23.667 に答える