无法在故事板iOS8的导航栏中添加右栏按钮

Posted

技术标签:

【中文标题】无法在故事板iOS8的导航栏中添加右栏按钮【英文标题】:Cannot add right bar button in navigation bar in storyboards iOS8 【发布时间】:2015-05-29 10:43:11 【问题描述】:

如题所示,我想知道是否可以通过代码避免在导航栏中添加右栏按钮。

我已经使用嵌入导航控制器的视图控制器完成了通常的过程,并尝试将条形按钮项拖放到视图控制器的导航栏中,但由于某些原因它不再起作用。

那么有可能在 ios 8 中以某种方式在情节提要中完成吗?

Xcode 版本。 6.2 稳定

【问题讨论】:

【参考方案1】:

嗯,iOS 8 中引入的新 segue 与旧 segue 之间的差异似乎存在问题。在这种情况下,push segues 和 show segue 之间的区别在于它允许在故事板中添加右栏按钮,如果自动添加(从控制器拖到另一个控制器)则不允许在导航栏中放置按钮。

原因是当使用 old segues 时,控制器会自动获得一个导航栏,因此您可以向其中添加元素,而如果使用 new segues导航栏不会自动添加到情节提要中的控制器中。

为我解决了这个问题的是:

    选择导致问题控制器的 segue 将其更改为“已弃用”push segue 将其改回接受的show segue

结果:现在我可以像往常一样通过 Storyboard 添加右栏按钮项。

【讨论】:

谁能想到这实际上是 Xcode 中的一个错误!非常感谢!顺便说一句..我的项目也在 Swift 中,我也在使用 iOS 8。 Tx 指出这个错误:我使用的是 Xcode 7.0.1,错误仍然存​​在! 最简单的方法解决了我的问题。我正在使用 Xcode 7.1。非常感谢。 谢谢,希望我能在去年 11 月看到这个……开始了一份新合同,但被拒绝了,因为我提到我无法添加右栏按钮。感谢 Xcode IB (7.2.1)。当推送消失时我们要做什么......不允许添加栏按钮项目? @MatthewFerguson,您必须将导航项添加到控制器 :) 目前是使用旧的 push segues 自动添加的。【参考方案2】:

如果您想将 BarButtonItem 添加到非 RootViewController,您必须首先将 Navigation Item 添加到您的 ViewController。

【讨论】:

我正在尝试添加到 root.. XD XD【参考方案3】:

首先从对象库中选择一个 UIBarButtonItem。然后拖到导航栏的右上角。

【讨论】:

不幸的是我试过这个,我不能把它放在那里。我猜有一些关于导航栏的设置。我尝试在故事板的导航控制器上设置显示导航栏,但这似乎不起作用。 你的 UIViewController 看起来像图片中的那个吗? 您需要将 UIViewController 嵌入到导航控制器中。将添加一张图片来展示如何操作。 它嵌入在导航控制器中。 当我尝试将其放到导航栏中时,它唯一会做的事情是使用我尝试删除的按钮创建一个底部栏。【参考方案4】:

我也遇到过类似的问题。

尝试将您的 Views 模拟大小更改为 Freeform。 该属性位于 Size Inspector 下。

【讨论】:

【参考方案5】:

我在向顶栏添加栏项时遇到问题的另一种情况是导航控制器与选项卡栏控制器相连。在这种情况下,您必须将栏项添加到 TabV 栏控制器导航项,而不是附加到选项卡栏控制器的各个视图控制器。

【讨论】:

以上是关于无法在故事板iOS8的导航栏中添加右栏按钮的主要内容,如果未能解决你的问题,请参考以下文章

在导航栏中添加彩色图像作为右栏按钮项

导航栏标题视图与左栏按钮项重叠

隐藏/显示导航栏中两个右栏按钮之一

故事板下添加的导航项

如何在导航栏中为非 rootviewcontroller 的 tableviewcontroller 添加编辑按钮

向导航栏添加另一个按钮