2013-10-31 24 views
1

我想改變工具欄上的可見按鈕,具體取決於表視圖的狀態。這可能嗎?視圖加載後,是否可以添加,刪除或隱藏工具欄上的按鈕?

要添加更多的細節:我目前有一個表視圖中的練習列表。底部有一個工具欄,上面有一個「新」按鈕,允許用戶創建一個新練習。當用戶點擊右上角的「編輯」時,視圖進入編輯模式,我希望他們能夠通過單擊工具欄中現在未隱藏的「刪除」按鈕使用多個選擇來刪除練習。在這一點上,我試圖讓「新」按鈕消失,只留下「刪除」按鈕。

我可以找到很多關於如何添加工具欄和向他們添加按鈕的答案,但一旦視圖加載後,似乎沒有人處理這個問題。

我想過有兩個不同的工具欄,每個工具欄都有不同的按鈕,然後切換哪些是隱藏的,哪些是可見的,但這會導致其他問題,所以我正在探索是否有一種簡單的方法來隱藏添加鈕釦。

+0

只需用新按鈕更新視圖控制器的'toolbarItems'屬性即可。這假定視圖控制器在導航控制器中。 – rmaddy

回答

0

它真的很容易。讓我們先看看如何創建一個UIToolbar然後ADDD項目,然後在運行時改變它們

self.MNToolbar=[[UIToolbar alloc] init]; 

self.addButton=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(importPhotos:)]; 

self.flexibleSpace=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

self.MNToolbar.items=[[NSArray alloc] initWithObjects:flexibleSpace, addButton, flexibleSpace, nil]; 

[self.view addSubView:self.MNToolbar]; 
// don't forget to set the bounds too 

這是如何創建它。

好了,現在讓我們看看如何運行

self.deleteButton=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(deletePhotos:)]; 

self.MNToolbar.items=[[NSArray alloc] initWithObjects:self.deleteButton, nil]; 

我希望你能點中改變它。如果您有任何問題,請告訴我。

+0

你爲什麼要創建一個'UIToolbar'?假設視圖控制器在導航控制器中,導航已經提供了工具欄。只需將視圖控制器的'toolbarItems'屬性設置爲新的工具欄項目數組。 – rmaddy

+0

正如他所說:「底部有一個工具欄,上面有一個按鈕」。所以他不是在談論導航控制器。 –

相關問題