我試圖以編程方式將UIButtonBarItem添加到UINavigationBar。我有這個類的頂欄,這對我的一些ViewControllers的,然後導入調用由:[self.view addSubview:[Topbar insertTopbar]];
以編程方式將UIButtonBarItem添加到UINavigationBar
#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]
,突然出現「+」號。看起來這個「navTitle」推入了第一個項目。
你試過'self.navigationItem.hidesBackButton = YES;'?這看起來像是因爲推送視圖控制器而發生的默認回退。可能如果你隱藏它,你會得到你的+。 –
我試着將它添加到視圖控制器,添加NavigationBar後(如http://cl.ly/image/0l3a111q260z),並沒有任何反應,仍然討厭的後退按鈕 –
添加'self.navigationItem.hidesBackButton = YES; '給你的viewController的' - (void)viewWillAppear'方法。後退按鈕沒有從導航欄顯示,它來自NavigationController的導航欄。 – Srikanth