在标签栏控制器上使用导航栏

Posted

技术标签:

【中文标题】在标签栏控制器上使用导航栏【英文标题】:Using navigation bar on tab bar controller 【发布时间】:2015-10-05 12:54:28 【问题描述】:

我是 xcode 的新手。我使用 xcode 7。

我正在尝试在标签栏控制器上添加导航栏。

在该屏幕截图中,我选择了顶部半透明条黑色,但运行项目时它没有出现

我的主要目的是显示一个顶部栏并在其上添加图像(徽标)。

我怎样才能做到这一点?

【问题讨论】:

你试过把它嵌入导航控制器吗? 怎么做,你能解释一下吗? 检查我编辑的答案@RULE101 @RULE101 选择你的视图控制器,然后从 'Editor' -> Embed in -> Navigation Controller @RULE101 请检查我的答案 【参考方案1】:

您的格式不正确。请在您的标签控制器中添加导航控制器。

选择您的ViewController 并单击编辑器 > 嵌入 > 导航控制器

像这样:

像这样添加导航控制器:

我希望它对你有用。

将图片添加到导航栏:

var image = UIImage(named: "abc.jpg") as UIImage
self.navigationController.navigationBar.setBackgroundImage(image, 
                                                   forBarMetrics: .Default)

【讨论】:

太棒了,谢谢。还有一个问题如何将图像添加到导航栏?我应该添加一个导航栏项目吗? 好的,我如何在导航栏中添加图片? self.navigationController.navigationBar.setBackgroundImage(image, forBarMetrics: .Default) 它会为我工作@RULE101 好的,但我需要更改图像大小和位置,有什么办法吗? 是的,但是他正确回答了我关于图像的问题。【参考方案2】:

添加导航控制器:

选择您的视图控制器,然后从“编辑器” -> 嵌入 -> 导航控制器

要将图像添加到您的导航栏,请在您的视图中执行此操作并加载:

let logo = UIImage(named: "yourimage.png")
let imageView = UIImageView(image:logo)
self.navigationItem.titleView = imageView

要更改图像大小,您需要按照以下方式更改 imageView 大小

        let imageView = UIImageView(frame: CGRectMake(100, 150, 150, 150)); // set as you want
    imageView.image = logo;
self.navigationItem.titleView = imageView

【讨论】:

这么近,怎么改变图片大小和位置属性? @RULE101 如果你能选择正确尺寸的图片会更好【参考方案3】:

您应该手动将导航栏添加到项目中并手动设置。或者更好的是添加导航控制器

【讨论】:

以上是关于在标签栏控制器上使用导航栏的主要内容,如果未能解决你的问题,请参考以下文章

将标签栏控制器与导航控制器一起使用时出现问题

在标签栏中的同一标签上切换视图而不使用导航控制器

在标签栏控制器中访问多个导航控制器

如何让所有导航控制器在标签栏中扎根?

UITableView:向上滑动时收缩标签栏和导航栏

如何在情节提要的标签栏上启动导航控制器的第三个视图控制器