1

アプリケーション全体でナビゲーションバーを使用していますが、ナビゲーションコントローラーを介したコントローラーではありません(ストーリーボードを介してVCに追加されています)。

左側のバー ボタンの項目を、使用中ずっとナビゲーション コントローラーで同じになるように設定したいと思います。これは、スライド インするメニューのスタック スタイルです。

ここに画像の説明を入力 標準的な慣行に従ってこのボタンを実装する正しい方法は何ですか? ボタンの背景を削除して繰り返し可能にすることはできますが、これは問題ではありませんが、次のことを完了するにはどうすればよいですか?これを持つすべての VC で再利用されます。

外観でできない場合、これを使用するコントローラーにこのコードを何度も含める必要がない最善の方法は何でしょうか?

これに加えて、このボタン項目をストーリーボードに表示し、ストーリーボードにリンクする/視覚的以外に使用する方法はありますか?

4

2 に答える 2

2

ああ、今、私はあなたをフォローしています。その場合は、カスタム navBar クラスを作成し、それを pch に追加してから必要に応じて使用するか、「UIViewControllerWithNavBar」というカスタム UIViewController サブクラスを作成してから、そのクラスをデフォルトの UIViewController クラスの代わりとして使用できます。

@interface SomeViewController : UIViewControllerWithNavBar

これにより、navBar が既に追加されているアプリ全体でクラスを再利用できます。

于 2013-05-03T12:59:46.463 に答える
0

私は最近、この問題についてブログ投稿を書きましたが、rightBarButtonItem. 「戻る」機能に微調整が必​​要かどうかはわかりませんが、興味がある場合は次のブログ投稿をご覧ください: http://www.codebestowed.com/ios-shared-barbuttonitems/

基本的な考え方は、UINavigationController をサブクラス化し、BarButtonItem プロパティ (以下のコードでは self.myButton) を指定して、次のようなコードを追加することです。

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.delegate = self;
}

- (void)navigationController:(UINavigationController *)navigationController
    willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if (!viewController.navigationItem.rightBarButtonItem) {
        viewController.navigationItem.rightBarButtonItem = self.myButton;
    }
}

ブログ投稿では、InterfaceBuilder でこれをさらに設定する方法について詳しく説明していますが、これには少しハックが必要です (この回答では説明しきれません)。

于 2014-03-15T05:17:41.637 に答える