【发布时间】:2018-02-28 01:31:32
【问题描述】:
我正在尝试在整个应用中的导航栏的右侧放置一个图标。这是除了主屏幕之外的任何地方(尽管在那里也可以,因为我将它隐藏在那个视图控制器上):顶部的表格视图控制器,以及图像最右侧的地图视图和表格视图控制器下面。
这段代码神秘地用于在一个视图控制器(收藏夹视图控制器,左上角)上的导航栏的 center 中设置图标,这是一个 tableview 控制器,与 UIViewController 分离,即嵌入导航控制器:
let yelpIcon = UIBarButtonItem(image: UIImage(named: "Yelp_trademark_RGB_outline"), style: .plain, target: self, action: nil)
self.navigationController!.navigationItem.rightBarButtonItem = yelpIcon
我的 Map 和 TableViewControllers(最右边)嵌入在导航控制器中,每个控制器都嵌入在标签栏控制器中。我无法通过在 Interface Builder 中创建导航项并设置其图像或以编程方式显示图像。
强烈建议在 SO 上使用此代码,但在我尝试时没有结果(我将操作设置为 nil,因为我不需要它来做任何事情):
let button1 = UIBarButtonItem(image: UIImage(named: "myimage"), style: .plain, target: self, action: Selector("action"))
self.navigationItem.rightBarButtonItem = button1
注意:导航栏采用黑色 barTintColor 进行风格化,这应该没什么区别,但我想我会分享。图片是我的资产文件夹中的 PNG。在使用调试视图层次结构时,我遇到了这两个层,它们似乎阻止了我的图像出现(尽管它们没有使用后退按钮执行此操作)。
实例地址 0x7fa8b7b10aa0 是一个 UIVisualEffectSubView。我不确定这是否是问题所在,但我也不知道如何将其关闭。我已将嵌入它的导航控制器上的导航栏中的视图色调更改为透明,并关闭不透明度。都没有奏效。
如何让导航栏右侧的图像出现?
【问题讨论】:
-
嗨,你能指定你在哪个 iOS 上运行它,以及你正在使用什么 swift 版本。还要告诉您希望图标显示这些
UIViewControllers中的哪一个。另一个是你不应该在self.navigationController的navigationItem上设置它,而应该在UIViewController的navigationItem上设置它。 -
模拟器版本 10、Swift 4、iOS 11.1、XCode 9.2
-
你的意思是,iPhone X、iOS 11.1 和 XCode 9.2 还是什么?没有 Swift 11.1
-
是的,我立即纠正了这一点。请刷新
-
我还编辑了我最初的评论,你能回答我添加的内容吗?
标签: ios swift xcode uiimage uinavigationbar