向导航栏添加另一个按钮

11

我正在修改一个应用程序,这个应用程序在导航栏中有一些按钮,我想通过将另一个按钮或 Bar Button 项拖到层次结构中来添加它,但是似乎我无法将其作为子项添加到导航栏中,我想问您是否有任何解决方案,下面是故事板的层次结构快照,我想向导航项添加另一个 Bar Button 或其他按钮。


谢谢
输入图像描述

1
没有图片,请上传一张图片。 - Wesley Cho
非常感谢,我已经附上了。 - m0j1
3个回答

21

我刚刚创建了一个空项目,可以做到这一点:

显示图片描述

我之前也做过类似的事情,使用的是UIButton而不是bar button item,这样就能获得更多的自定义功能。只要确保为按钮设置了一个outlet,并在视图控制器中调用self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:self.customButton];:

显示图片描述

你可以拥有多个右边的bar button items,如果它们与标题重叠(如果有的话),那么它们将被裁剪。据我理解,您可以有任意多的按钮,直到空间用完(显然因设备而异)。相关文档:

该数组可以包含0个或多个bar button items,以显示在导航栏的右侧。项按照它们在数组中出现的顺序从右到左显示。因此,数组中的第一项是最右侧的项目,其他项添加到上一个项目的左侧。

如果没有足够的空间来显示数组中的所有项目,则不会显示那些会重叠标题视图(如果有)或bar左侧的按钮的项目。

带有多个按钮的示例:

显示图片描述

可以使用以下方式通过编程方式添加按钮:

navigationItem.rightBarButtonItems = [aButton, anotherButton, awesomeButton]

只需确保测试针对的最小设备仍然为用户提供良好的UX,即使您添加了很多按钮。


哇,谢谢你,伙计,那些 GIF 真是太棒了。能不能再加入超过 3 个项目呢?因为我正在处理的项目已经有 2 个按钮和一张图片了,我想要添加第三个按钮。再次感谢。 - m0j1
@m0j1 您肯定可以拥有第三个右侧按钮项。我已经更新了我的答案,并提供了更多细节。 - Gordonium

8

这是Swift的正确答案:

let barButton_array: [UIBarButtonItem] = [Button1, Button2]
navigationItem.setRightBarButtonItems(barButton_array, animated: false)

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接