UINavigationBarの戻る矢印画像をbackIndicatorImageで差し替える

  • iOS
  • Objective-C

この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。

古いメモを見返してたら、こんなコードが残ってた。

UIImage *backButtonImage = [[UIImage imageNamed:@"BackButton"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[UINavigationBar appearance].backIndicatorImage = backButtonImage;
[UINavigationBar appearance].backIndicatorTransitionMaskImage = backButtonImage;

UINavigationBarの戻るボタンの矢印アイコンを、独自画像に差し替えるやつ。

中身

  • imageWithRenderingMode:UIImageRenderingModeAlwaysOriginalで画像をオリジナルカラーのまま使う指定。これがないとtintColorで塗り替えられる
  • backIndicatorImageが矢印そのものの画像
  • backIndicatorTransitionMaskImageはpush/pop時のトランジション中に使われるマスク画像

backIndicatorImageとbackIndicatorTransitionMaskImageは同じ画像を渡すのが定石。ここがずれると、画面遷移のアニメーション中に矢印の見た目が崩れる。

[UINavigationBar appearance]はUIAppearanceプロキシなので、アプリ全体のUINavigationBarに一括で効く。個別のnavigationItemごとの設定ではない。