アプリケーションのナビゲーション バーの戻るボタンを変更するためのよりエレガントなソリューションが必要です。私が見たすべての回答は、ボタンをカスタマイズし、新しいボタンを表示するために各View Controllerに少なくとも1行のコードを追加することについてのみ語っています。
ナビゲーション バーの背景とタイトルを変更するカテゴリがあります。のカテゴリーですUINavigationBar
。willMoveToWindow:
新しいビューが Navigation Controller にプッシュされるたびに、カテゴリはメソッドを呼び出します。
新しいボタンを作成するコードは次のようになります。
- (void)applyCustomButton{
UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 26, 26)];
[backButton setImage:[UIImage imageNamed:@"arrow-left"] forState:UIControlStateNormal];
[backButton setShowsTouchWhenHighlighted:TRUE];
[backButton addTarget:self action:@selector(popViewControllerAnimated:) forControlEvents:UIControlEventTouchDown];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
[self.navigationItem setLeftBarButtonItem:barButtonItem];
}
ここでの問題は、ここでは機能しself.navigationItem
ないことです。私が分類しようとしたすべてのものであなたを退屈させたくありませんが、そのプロパティはView Controllerでのみ機能します(私は思う)?
上記のコードの解決策を私に提供する必要はありません。私が持っているすべてのビュー コントローラー クラスにコードを記述することなく、ナビゲーション バーの [戻る] ボタンをカスタマイズするより良い方法があるかもしれません。そのようなコードを維持するのは面倒なので、繰り返しが嫌いです。
前もって感謝します。