感觉我已经浪费了很多时间在这个上,并且会喜欢一些帮助。我试图在我的barButtonItem中使用自定义菜单图标(20px x 20px)。它的问题是缩放以填充条形按钮项并被扭曲。
通常这不应该太复杂。但我使用选项卡式视图控制器而不是导航控制器。我放入视图控制器的导航栏只是一个插座。
通常我可以这样做:
let image = UIImage(named: "menu_white")
let frame = CGRectMake(0, 0, image!.size.width, image!.size.height)
let button = UIButton()
button.frame = frame
button.setImage(image, forState: .Normal)
let rightMenuButton = UIBarButtonItem(customView: button)
self.navigationItem.setRightBarButtonItem(rightMenuButton, animated: true)
但是这并不起作用,因为self.navigationItem实际上并没有引用视图控制器中的任何东西。
我需要以某种方式以编程方式将图像放入插座,但setRightBarButtonItem不是UINavigationBar的方法。
@IBOutlet weak var navBar: UINavigationBar!
如果有人有想法,我会非常感谢你的帮助。
答案 0 :(得分:0)
a"松散"导航栏的工作原理是您配置UINavigationItem并将包含该数组的数组设置为导航栏items
,如本示例代码(来自我的书):
let ni = UINavigationItem(title: "Tinker")
let b = UIBarButtonItem(title: "Evers", style: .Plain, target: self, action: "pushNext:")
ni.rightBarButtonItem = b
self.navbar.items = [ni]
所以,你可能会做那样的事情。
self.navigationItem
只是一种在你使用UINavigationController的特殊情况下自动完成的方法。但是你说你不这样做。 (当然,你可以这样做;没有法律规定你必须使用导航控制器来进行任何实际导航。我经常使用导航控制器来获取导航栏,因为它是放置小菜单按钮之类的好地方。)