私はUINavigationController
を持っています。ナビゲーションバーの右側に複数のボタンを追加しようとしています。どうすればこれを達成できますか?どのようなボタンが必要ですか? UIBarButton
またはUINavigationItem
?
開発者リファレンスを読んで、ナビゲーションバーの追加のボタンに不快感を与えることは確かです。今はその一節が見つかりません。私自身はそれをしていませんが、あなたがする必要があることを正確に概説しているように見えるこのリンクを見つけました: (http://www.mattdipasquale.com/blog/2010/11/02/how-to-add -multiple-uibarbuttonitems-to-uinavigationbar /)
ナビゲーションコントローラーのツールバープロパティの使用を検討しましたか?
IOS5以降では、ナビゲーションボタンのrightBarButtonItems
(複数形に注意)プロパティにバーボタンアイテムの配列を割り当てることができます。
私はXcode 4.5、iOS 6でJRTurtonsの回答を使用し、次のように実装しました。
// Two buttons at the right side of nav bar
UIBarButtonItem *addAttachButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAttachmentClicked:)];
UIBarButtonItem *sendButton = [[UIBarButtonItem alloc] initWithTitle:LS(@"Send") style:UIBarButtonItemStyleBordered target:self action:@selector(sendClicked:)];
self.navigationItem.rightBarButtonItems = @[addAttachButton,sendButton];
ただし、UIBarButtonSystemItemPageCurlはそのように機能しないことを述べておかなければなりません。
xCodeでナビゲーションコントローラーにデザインを追加するのは簡単です。
uIViewをシーンに追加し、必要なボタンをUIViewに追加してから、UIViewをnavigationControllerの適切なスペースにドラッグアンドドロップします。
実際には少し鉱石のハックさえありますが、同時にこれを行うよりクリーンな方法:UINavigationItemでカテゴリを定義するだけです:
UINavigationItem + Toolbars.h:
@interface UINavigationItem (Toolbars)
@property (nonatomic, retain) IBOutlet UIToolbar * rightToolBar;
@property (nonatomic, retain) IBOutlet UIToolbar * leftToolBar;
- (void)setRightToolBar:(UIToolbar *)_rightToolBar;
- (UIToolbar *)rightToolBar;
- (void)setLeftToolBar:(UIToolbar *)_leftToolBar;
- (UIToolbar *)leftToolBar;
@end
UINavigationItem + Toolbars.m:
#import "UINavigationItem+Toolbars.h"
@implementation UINavigationItem (Toolbars)
- (void)setRightToolBar:(UIToolbar *)_rightToolBar {
self.rightBarButtonItems = _rightToolBar.items;
}
- (UIToolbar *)rightToolBar {
return nil;
}
- (void)setLeftToolBar:(UIToolbar *)_leftToolBar {
self.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:_leftToolBar] autorelease];
}
- (UIToolbar *)leftToolBar {
return nil;
}
@end
その後、IB設定でアウトレットをツールバーに割り当て(ツールバーを作成するだけ)、ナビゲーション項目に表示されるボタンをお楽しみください。
Xcode 7.1では(おそらくそれ以前にも)、ドラッグするだけでUINavigationBarの右側または左側に複数のアイテムを追加できます。正しい場所にドラッグすると、そのアイテムが配置される場所を示す小さな垂直バーが表示されます挿入されます。