设置左侧按钮的重用导航栏项目按钮

问题描述:

虽然不是通过导航控制器控制器(通过故事板添加到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

好的,现在我正在关注你。在这种情况下,只需创建一个自定义navBar类并将其添加到您的pch中,然后在必要时使用它或创建一个名为“UIViewControllerWithNavBar”的自定义UIViewController子类,然后您可以使用该类作为默认UIViewController类的替代品。

@interface SomeViewController : UIViewControllerWithNavBar 

这将允许您在整个应用程序中重复使用navBar中的类。

+1

接受为答案,但我的方法是继承UINavigationBar并使用awakeFromNib进行酒吧外观 – StuartM 2013-05-03 15:47:43

我最近写了一篇关于这个问题的博客文章,但是关于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中,这需要一个黑客位(太多进入这个答案)的进一步此设置。