2011-03-15 156 views
4

我有一個UINavigationController,我已經設置爲我的窗口的rootViewController。在NIB文件中,我已經對它進行了設置,以便它具有「工具欄」的「底部欄」。在界面生成器中,我添加了一個UIBarButtonItem。這一切都很好,我可以處理按鈕點擊罰款。當我點擊其中一個按鈕時,我將新視圖推送到ViewController上,並且工作正常。一個問題,我的按鈕在視圖加載時消失。現在,在隨後的視圖中,我可以將底部欄設置爲工具欄,並在Interface Builder中看到它,但我無法將其添加到任何按鈕。UINavigationController工具欄按鈕

我知道我要麼丟失了明顯的東西,或者錯誤地思考這個問題,但是如何將UIBarButtonItems添加到推送到我的導航控制器的後續視圖中?我正在談論底部的酒吧,而不是頂部的導航欄。

任何想法?

回答

11

UIViewController上的toolbarItems屬性就是您感興趣的內容。您可以通過編程創建UIBarButtonItems,並將它們添加到viewDidLoad中的新的toolBarItems數組中。

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIBarButtonItem* editButton = [[[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered target:self action:@selector(editAction)] autorelease]; 
    [self setToolbarItems:[NSArray arrayWithObject:editButton]]; 
} 
+0

謝謝你,工作得很好。在Interface Builder中有沒有辦法做到這一點?似乎我絕大多數的掙扎都來自於嘗試用IB來設計事物。 – JamesB41 2011-03-15 03:54:36

+1

您可以在界面構建器中創建UIBarButtonItems,並將它們併入到主視圖(旁邊的視圖,而不是視圖層次結構的一部分)中。然後將它們設置爲文件所有者的屬性。然後,在viewDidLoad中,將您的toolbarItems設置爲包含對這些屬性的引用的數組。你也可以試試這些人在談論什麼 - http://stackoverflow.com/questions/1315587/setting-toolbar-items-of-uinavigationcontroller – 2011-03-15 14:08:01

-2

這對我更好地工作:

[[self navigationItem] setLeftBarButtonItem:homeButton]; 

您可以爲右側做相同。

+4

問題是關於'UIToolbar'在屏幕的底部。不是頂部的人。 – Defragged 2013-06-04 13:44:54