将相同的 UIBarButtonItem 添加到几个 UIViewControllers
Posted
技术标签:
【中文标题】将相同的 UIBarButtonItem 添加到几个 UIViewControllers【英文标题】:Add the same UIBarButtonItem to several UIViewControllers 【发布时间】:2014-02-19 16:12:38 【问题描述】:我想将相同的UIBarButtonItem
添加到多个UIViewController
s。我之前通过创建父UIViewController
来完成此操作,该父UIBarButtonItem
s 设法在viewDidLoad
中添加UIBarButtonItem
s。但是现在我有许多从不同视图控制器继承的视图控制器,所以如果我遵循相同的策略,我应该为每个不同的视图控制器创建一个 UIViewController
子类。
我实际上在做的是在我的BaseViewController
中配置导航栏按钮,这是所有其余部分的父控制器,具体取决于我在创建子视图控制器时设置的标志。使用此解决方案,代码仅依赖于一个视图控制器,但我希望有更优雅的选项来实现这一点。
【问题讨论】:
【参考方案1】:一种解决方案是使用objective-c category。在这种情况下,您将为所有 UIViewControllers 创建通用方法,该方法将创建和配置 UIBarButton
【讨论】:
您是指UIViewController
类别吗?
@amb 当然,它应该是UIViewController's
类别。此外,它可以是您的视图控制器组基础的任何其他类的类别,但如果您有这样的类,我认为在该基类中实现分离的方法会更合适。
我刚刚将其实现为我的BaseViewController
的一个类别。完美运行,是迄今为止我见过的最好的解决方案。我无法在我的基础 VC 中将此作为方法实现,因为它需要实例化另一个继承自基础 VC 的 VC。以上是关于将相同的 UIBarButtonItem 添加到几个 UIViewControllers的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式添加到导航栏的UIBarButtonItem无法调用选择器,而添加到工具栏的按钮确实如此
将 UIBarButtonItem 添加到 UIToolbar
将 UIBarButtonItem 添加到 UIViewController 推送到 UINavigation 控制器