如何在多个视图控制器中使用自定义工具栏而不重复代码和复制元素(swift)?

Posted

技术标签:

【中文标题】如何在多个视图控制器中使用自定义工具栏而不重复代码和复制元素(swift)?【英文标题】:how to use customized toolbar in multiple viewcontroller without repeating the code and copying the elements (swift)? 【发布时间】:2019-06-11 10:48:49 【问题描述】:

尝试使用工具栏创建 XIB

“我在问我是否已经自定义了工具栏,我需要在多视图控制器中使用它而不重复我已经做过的事情”

【问题讨论】:

【参考方案1】:

来自故事板

转到故事板 选择您的初始 ViewController 在顶部单击编辑器>嵌入>导航控制器 选择导航控制器,转到 Attributes Inspector>Bottom Bar 并选择所需的工具栏。

现在每次创建新的 ViewController 并执行 segue 时,工具栏都会自动出现。

以编程方式

在你的 rootViewController 的 viewDidLoad() 中

let toolBar = UINib(nibName: "ToolBar", bundle: nil).instantiateWithOwner(nil, 
options: nil).first as! YourToolBarClass
self.navigationController!.view.addSubview(toolBar)
self.navigationController!.toolbarItems = toolBar.items

致所有 ViewController:

self.toolbarItems = self.navigationController!.toolbarItems

【讨论】:

我在问我是否已经自定义了工具栏,我需要在多视图控制器中使用它而不重复我已经做过的事情 见第二种方法。 你能告诉我如何在分离的xib文件和分离的类中创建工具栏并在多视图控制器中使用它吗? 我认为最适合您的是在 youtube 上查看一些教程。基本上你应该设计你的 xib,然后在你的 xib 类中声明所有元素,然后执行第二种方法。 带有“self.navigationController!.view.addSubview(toolBar) self.navigationController!.toolbarItems = toolBar.items” ???还有

以上是关于如何在多个视图控制器中使用自定义工具栏而不重复代码和复制元素(swift)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在多个 ViewController 中使用 NSFetchedResultsControllerDelegate 而不重复控制器代码?

如何将多个自定义视图控制器与导航控制器一起使用?

在多个视图控制器之间传递数据[重复]

如何使用 UIView 创建自定义翻转动画

使用来自多个视图控制器的自定义 UIView

如何在导航控制器中自定义工具栏