我正在尝试以编程方式将UIButtonBarItem添加到UINavigationBar。我有这个类Topbar,在我的一些ViewControllers上导入,然后通过以下方式调用:[self.view addSubview:[Topbar insertTopbar]];
#import "Topbar.h"
@implementation Topbar
+(UINavigationBar*)insertTopbar
{
UINavigationBar *navBar = [ [UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
UINavigationItem *navTitle = [UINavigationItem alloc];
navTitle.title = @"MyApp";
UINavigationItem *navAdd = [UINavigationItem alloc];
navAdd.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemAdd target:self action:@selector(addFood)];
[navBar setItems:@[navAdd, navTitle] animated:false];
return navBar;
}
@end
但是当我尝试使用navBar setItems:@[navAdd, navTitle]
设置项目时,它会广告"返回" - 按钮
如果我然后遗漏navTitle
所以它显示为navBar setItems:@[navAdd]
,那么" +" -sign会突然出现。好像是" navTitle"推进第一项。
答案 0 :(得分:1)
尝试以下方法,做了一些微调,现在对我来说工作正常! :)
-(UINavigationBar*)insertTopbar
{
UINavigationBar *navBar = [ [UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
UINavigationItem *navAdd = [UINavigationItem alloc];
navAdd.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemAdd target:self action:@selector(addFood)];
[navBar pushNavigationItem:navAdd animated:YES];
navBar.topItem.title = @"MyApp";
return navBar;
}