2

UINavigationControllerユーザーが「メイン」画面のボタンを選択したときにスタックにプッシュされたviewControllerにいます。

ここに画像の説明を入力

私がやろうとしているのはUIBarButtonItem、戻るボタン (画像では「メイン」として表示) にアクセスしsetBackButtonBackgroundImage:forState:barMetrics:、ボタンをカスタマイズするために呼び出すことができるポイントに到達することです。

私が混乱してUIViewControllerいるのは、プッシュされたそれぞれからこれを行う必要があるか、それともUINavigationControllerそれ自体で一度だけ行う必要があるかということですか?

次を使用して、プッシュされたコントローラーから必要なものにアクセスできると思いました。

UINavigationItem *navItem = [self navigationItem];

しかし、物事のセットアップ方法に混乱していると思います。

4

1 に答える 1

2

戻るボタンをカスタマイズできるのは、コントローラー B にプッシュするコントローラー A があるとします。コントローラー B に表示される戻るボタンは、A の戻るボタンです。

アプリのすべてのボタンをカスタマイズする場合は、サブクラス化できますUINavigationController。通常UINavigationControllerではなく、pushViewController:animatedこれを実行できるメソッドで使用していることを確認してください。

controller.navigationItem.backBarButtonItem = ...; // Your custom back button
[super pushViewController...];

編集 デフォルトの戻るボタンにはアクセスできません。新しいボタンを作成して置き換えることしかできません。

于 2013-02-05T19:17:20.290 に答える