1

我在整个应用程序中使用导航栏,尽管不是通过导航控制器(通过情节提要添加到 VC)的控制器。

我想在导航控制器上将左栏按钮项设置为相同,直至其使用。这是将滑入的菜单的堆栈样式:

在此处输入图像描述 按照标准做法实现此按钮的正确方法是什么?我可以将按钮的 bg 剥离为可重复的,这不是问题,但我如何完成以下操作: 1. 在按钮内实现图像 2. 如果可能,通过外观 API 实现此按钮,因此代码不是胶水代码并在所有拥有此功能的 VC 上重复使用。

如果我不能通过外观来做,那么不必在使用它的控制器中一遍又一遍地包含此代码的最佳方法是什么?

除此之外,有没有办法在情节提要中显示此按钮项并在情节提要中链接/具有视觉以外的用途。

4

2 回答 2

2

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

@interface SomeViewController : UIViewControllerWithNavBar

这将允许您在已添加 navBar 的情况下在整个应用程序中重用该类。

于 2013-05-03T12:59:46.463 回答
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 中进一步设置它,这需要一些技巧(在这个答案中太多了)。

于 2014-03-15T05:17:41.637 回答