1

雖然不是通過導航控制器控制器(通過故事板添加到VC),但我通過應用程序使用導航欄。設置左側按鈕的重用導航欄項目按鈕

我想設置一個左欄按鈕項目,在導航控制器上的使用相同。這是用於將滑入的菜單的堆疊樣式:

enter image description here 按照標準實踐來實現此按鈕的正確方法是什麼?我可以將bg按鈕設置爲可重複的,這不是問題,但我如何完成以下操作: 1.在按鈕內實現圖像 2.如果可能,通過外觀API實現此按鈕,以使代碼不是膠水代碼並重新用於所有擁有此功能的VC。

如果我不能通過外觀做什麼,最好的方法是不必將這些代碼反覆包含在使用它的控制器中?

除此之外,有沒有一種方法可以在故事板中顯示此按鈕項目,並且可以在故事板中鏈接/具有視覺以外的用途。

+0

您可以爲viewController創建一個類別,並將navBarItem添加到navBar。如果您沒有使用該按鈕進行導航,那麼該按鈕的預期結果是什麼?菜單在整個酒吧下面滑動?您可以使用圖像欄項目的圖像屬性。 – 2013-04-30 18:11:42

+0

是的菜單在下面滑動。對於多個VC來說也是一樣。我會使用圖像屬性,而不是拉伸圖像,只是將其用作整個圖像?它不是所有的視圖控制器,但有7個左右,將使用這個,你還推薦一個類別? – StuartM 2013-05-01 08:12:51

+0

@MarkM - 你有什麼需要什麼的其他信息?如何創建類別和方法? – StuartM 2013-05-02 15:52:47

回答

1

好的,現在我正在關注你。在這種情況下,只需創建一個自定義navBar類並將其添加到您的pch中,然後在必要時使用它或創建一個名爲「UIViewControllerWithNavBar」的自定義UIViewController子類,然後您可以使用該類作爲默認UIViewController類的替代品。

@interface SomeViewController : UIViewControllerWithNavBar 

這將允許您在整個應用程序中重複使用navBar中的類。

+1

接受爲答案,但我的方法是繼承UINavigationBar並使用awakeFromNib進行酒吧外觀 – StuartM 2013-05-03 15:47:43

0

我最近寫了一篇關於這個問題的博客文章,但是關於rightBarButtonItem。我不知道如果「後退」功能,將需要調整,但這裏的博客文章,如果有興趣:http://www.codebestowed.com/ios-shared-barbuttonitems/

的基本思想是繼承UINavigationController的,給它一個BarButtonItem屬性(self.myButton在下面的代碼)並添加類似於代碼:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.delegate = self; 
} 

- (void)navigationController:(UINavigationController *)navigationController 
    willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 
{ 
    if (!viewController.navigationItem.rightBarButtonItem) { 
     viewController.navigationItem.rightBarButtonItem = self.myButton; 
    } 
} 

博客文章詳細介紹瞭如何可以在InterfaceBuilder中,這需要一個黑客位(太多進入這個答案)的進一步此設置。