こんにちは、ios アプリケーションを開発しています。UI はストーリーボードを使用して設計されたので (初めて使用します)、次のようになります。
- エントリ ポイント: ナビゲーション コントローラ
- rootViewビューコントローラー(他の多くのビューにプッシュし、そのうちのいくつかはUITableViewです)
- 次に、ペン先からロードされたビューをプログラムで(一部のコントローラーで)プッシュします(これについては問題ありません)
各コントローラーには定義されたタイトルがあります。
私がやりたいことは、すべてのView Controllerのナビゲーションバーに正しいボタンを配置して、(プログラムで)別のコントローラーにプッシュできるようにすることです(希望はペン先にありますが、問題なくSBに移動できます)
私が試してみました:
- カスタムクラスとnibファイルを使用していますが、カスタマイズされていない同じナビゲーションバーが表示されます
- initWithCoder を上書きして、nib ファイルにリダイレクトできるようにしますが、無限ループが発生します (StakOverflow、やった!)
2 番目のクラスを使用して無限ループを回避しますが、例外が発生します。
キャッチされていない例外 'NSGenericException' が原因でアプリを終了しています。
navbar クラスの init メソッドにボタンを手動で追加しますが、効果はありません
- ナビゲーション コントローラー initWithCoder のナビゲーション バーを置き換えますが、影響はありません
- 同じですが、ナビゲーション コントローラの viewDidLoad メソッドでは、影響はありません
- 同じですが、rootView Controller では、影響はありません
私が使用していたコードはこれでした(そしていくつかのバリエーション):
UIBarButtonItem *BTN = [[UIBarButtonItem alloc]
initWithImage:[[UIImage alloc] initWithContentsOfFile:@"img.png"]
style:UIBarButtonItemStyleBordered
target:self
action:@selector(pushView)];
[[self navigationItem] setRightBarButtonItem:BTN];
これをアーカイブする方法はありますか、またはビューごとに手動で表示する必要がありますか?
- ありがとう