将相同的 UIBarButtonItem 添加到几个 UIViewControllers

Posted

技术标签:

【中文标题】将相同的 UIBarButtonItem 添加到几个 UIViewControllers【英文标题】:Add the same UIBarButtonItem to several UIViewControllers 【发布时间】:2014-02-19 16:12:38 【问题描述】:

我想将相同的UIBarButtonItem 添加到多个UIViewControllers。我之前通过创建父UIViewController 来完成此操作,该父UIBarButtonItems 设法在viewDidLoad 中添加UIBarButtonItems。但是现在我有许多从不同视图控制器继承的视图控制器,所以如果我遵循相同的策略,我应该为每个不同的视图控制器创建一个 UIViewController 子类。

我实际上在做的是在我的BaseViewController 中配置导航栏按钮,这是所有其余部分的父控制器,具体取决于我在创建子视图控制器时设置的标志。使用此解决方案,代码仅依赖于一个视图控制器,但我希望有更优雅的选项来实现这一点。

【问题讨论】:

【参考方案1】:

一种解决方案是使用objective-c category。在这种情况下,您将为所有 UIViewControllers 创建通用方法,该方法将创建和配置 UIBarButton

【讨论】:

您是指UIViewController 类别吗? @amb 当然,它应该是UIViewController's 类别。此外,它可以是您的视图控制器组基础的任何其他类的类别,但如果您有这样的类,我认为在该基类中实现分离的方法会更合适。 我刚刚将其实现为我的BaseViewController 的一个类别。完美运行,是迄今为止我见过的最好的解决方案。我无法在我的基础 VC 中将此作为方法实现,因为它需要实例化另一个继承自基础 VC 的 VC。

以上是关于将相同的 UIBarButtonItem 添加到几个 UIViewControllers的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式添加到导航栏的UIBarButtonItem无法调用选择器,而添加到工具栏的按钮确实如此

将 UIBarButtonItem 添加到 UIToolbar

将 UIBarButtonItem 添加到 UIViewController 推送到 UINavigation 控制器

将 UIBarButtonItem 添加到 UIActionSheet 导航栏 (UIDatePicker)

如何将几个 UIBarButtonItem 添加到导航栏?

添加到情节提要的 UIBarButtonItem 在运行时不会出现