选项卡栏 - 向所有控制器添加新光束

Posted

技术标签:

【中文标题】选项卡栏 - 向所有控制器添加新光束【英文标题】:Tab bar - adding a new beam to all controllers 【发布时间】:2018-03-31 14:11:51 【问题描述】:

Example

有没有人做过这样的例子? 我希望它在其他控制器之间传递时一直显示。我不想在每个控制器中再次创建它。

【问题讨论】:

新光束是什么意思? 只需将包含您想要显示的任何内容的视图添加到其他所有内容之上。 我希望它在其他控制器之间传递时一直显示。我不想在每个控制器中再次创建它。 然后将其添加到 tabbarcontroller 的视图中。 我该怎么做呢?我无法在“TabBarController”中添加 【参考方案1】:

覆盖 TabBar 控制器的视图确实加载,以创建您的 beamView:

let beamViewHeight:CGFloat = 60

let beamView = UIView()
beamView.translatesAutoresizingMaskIntoConstraints = false
beamView.backgroundColor = .black
self.view.addSubview(beamView)

添加约束使其底部对齐,标签栏顶部:

let bottom = NSLayoutConstraint(item: beamView, attribute: .bottom, relatedBy: .equal, toItem: self.tabBar, attribute: .top, multiplier: 1, constant: 0)
let leading = NSLayoutConstraint(item: beamView, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1, constant: 0)
let trailing = NSLayoutConstraint(item: beamView, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1, constant: 0)
let height = NSLayoutConstraint(item: beamView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: beamViewHeight)

view.addConstraints([bottom, leading, trailing, height])

看起来像这样:

【讨论】:

以上是关于选项卡栏 - 向所有控制器添加新光束的主要内容,如果未能解决你的问题,请参考以下文章

即使选项卡按钮无法立即访问该屏幕,也将选项卡栏添加到所有屏幕

UI 选项卡栏控制器未显示设备上的所有选项卡。模拟器完美运行

如何将选项卡栏添加到默认视图并使用导航控制器与其他视图通信

添加情节提要参考时,标签栏控制器项目上不显示任何内容

以编程方式将选项卡栏控制器添加到当前 App Flow

添加到选项卡栏控制器时,列样式 UISplitViewController 无法正常工作