我决定在我的导航控制器中有一个自定义工具栏。为此,我创建了这个通用工具栏类,我的每个视图控制器都会将其添加到其导航项中。
@implementation MainLeftToolbar
- (id)init
{
self = [super initWithFrame:CGRectMake(0, 0, 133, 44)];
if(self) {
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:5];
// create a standard "add" button
UIBarButtonItem* bi = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:NULL];
bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
// create a spacer
bi = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[buttons addObject:bi];
// create a standard "refresh" button
bi = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)];
bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
// stick the buttons in the toolbar
[self setItems:buttons animated:NO];
}
return self;
}
@end
它是这样设置的:
MainLeftToolbar *leftMenuToolbar = [[MainLeftToolbar alloc]init];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:leftMenuToolbar];
但是,我有按钮,其中之一是显示相机(UIPopover)。我似乎无法让相机出现在 UIToolbar 类中,因此,我需要让它出现在添加了该工具栏的视图控制器中。我考虑过使用委托方法,但这意味着我将不得不复制代码以在每个具有此自定义工具栏的视图控制器中显示相机。有任何想法吗?!