答案 0 :(得分:2)
您可以通过各种方式配置视图控制器的navigationItem
以实现此设计。
要允许左侧系统“后退按钮”旁边的其他按钮:
navigationItem.leftItemsSupplementBackButton = true
这允许您为圆形图像添加左栏按钮项目:
navigationItem.setLeftBarButtonItem(imageItem, animated: trueOrFalse)
imageItem
将是使用customView或image初始化的UIBarButtonItem,如此处的其他一些答案所述。
对于后退按钮本身,实现简单的“<”如果没有显示上一个视图的标题或显示“< Back”,您可以打开故事板并将前一个视图控制器的后退按钮文本设置为单个空格,如this post中所述。
对于标题区域,如其他答案所述:
navigationItem.titleView = (a custom view)
对于右侧,您可以添加多个按钮:
navigationItem.setRightBarButtonItems([button1, button2, button3, button4], animated: trueOrFalse)
这里,button1,button2,button3和button4都是UIBarButtonItems。您可能会initialize these buttons with images。
看起来您还想将导航栏的tintColor设置为黑色,以便条形按钮呈现为黑色:
navigationController?.navigationBar.tintColor = .black
所有这些代码都将在视图控制器中完成,通常在viewDidLoad
中完成,除非您需要动态更改视图控制器内容更改时显示的按钮。
答案 1 :(得分:1)
您可以创建自己的视图并放下图像,标签等... 之后,你写道:
self.navigationItem.titleView = yourView
答案 2 :(得分:1)
UINavigationItem
有一个名为rightBarButtonItems
的属性,这需要一个UIBarButtonItem
数组,在您的情况下,每个按钮都是。{/ p>
您可以使用UIBarButtonItem
上的初始化工具来指定图片和样式:
init(image:UIImage?,style:UIBarButtonItemStyle,target:Any?,action:Selector?)
使用指定的图像和其他属性初始化新项目。
在视图控制器上,您可以通过访问者navigationItem
访问导航项,如果您将视图控制器嵌入UINavigationController
内,则需要访问该实例上的navigationItem而不是视图控制器
答案 3 :(得分:1)
您可以在导航栏中添加UIView,以便在该视图中添加多个按钮。
答案 4 :(得分:1)
试试这个:
let callImage = UIImage(named: "call")!
let videoImage = UIImage(named: "video")!
let searchImage = UIImage(named: "search")!
let callButton = UIBarButtonItem(image: callImage, style: .plain, target: self, action: #selector(didTapCallButton))
let videoButton = UIBarButtonItem(image: searchImage, style: .plain, target: self, action: #selector(didTapVideoButton))
let searchButton = UIBarButtonItem(image: searchImage, style: .plain, target: self, action: #selector(didTapSearchButton))
navigationItem.rightBarButtonItems = [callButton, videoButton, searchButton]
选择方法
func didTapCallButton(sender: AnyObject){
...
}
func didTapVideoButton(sender: AnyObject){
...
}
func didTapSearchButton(sender: AnyObject){
...
}