在导航栏中添加多个按钮

Nik*_*nju 4 uinavigationbar ios swift

我的应用程序要求我在导航栏中添加多个按钮。这是我的导航栏的样子

在此输入图像描述

我如何实现这种类型的设计?

Mik*_*ock 5

您可以通过多种方式配置视图控制器navigationItem来实现此设计。

左边

要允许左侧系统“后退按钮”旁边的其他按钮:

navigationItem.leftItemsSupplementBackButton = true
Run Code Online (Sandbox Code Playgroud)

这允许您为圆形图像添加左栏按钮项目:

navigationItem.setLeftBarButtonItem(imageItem, animated: trueOrFalse)
Run Code Online (Sandbox Code Playgroud)

imageItem将是使用 customView 或图像初始化的 UIBarButtonItem,如此处的一些其他答案中所述。

对于后退按钮本身,要实现简单的“<”而不显示上一个视图的标题或显示“< Back”,可以打开情节提要并将前一个视图控制器的后退按钮文本设置为单个空格,如下所示这篇文章中描述了。

标题区

对于标题区域,正如其他答案中所讨论的:

navigationItem.titleView = (a custom view)
Run Code Online (Sandbox Code Playgroud)

右边

对于右侧,您可以添加多个按钮:

navigationItem.setRightBarButtonItems([button1, button2, button3, button4], animated: trueOrFalse)
Run Code Online (Sandbox Code Playgroud)

这里,button1、button2、button3和button4都是UIBarButtonItems。您可能会使用图像来初始化这些按钮

看起来您还想将导航栏的tintColor设置为黑色,以便栏按钮呈现为黑色:

navigationController?.navigationBar.tintColor = .black
Run Code Online (Sandbox Code Playgroud)

所有这些代码都将在视图控制器中完成,通常在 中viewDidLoad,除非您需要随着视图控制器的内容更改而动态更改显示的按钮。