在segueing之后如何向导航控制器添加按钮?

时间:2014-08-30 23:03:04

标签: ios xcode xcode6 xcode6-beta6

我在Storyboard中设置了一个嵌入导航控制器的视图控制器。在这个导航控制器中,我检查了显示导航栏和显示工具栏,并在模拟指标中分别在顶栏和底栏中启用了导航栏和工具栏。然后我"显示例如推"从视图控制器到另一个视图控制器的segue。在两个视图控制器上,我都以相同的方式设置了模拟指标,因此导航栏和工具栏在所有三个控制器上都可见。

问题是,我可以将条形按钮项添加到导航栏和工具栏的第一个视图控制器,但是我无法将条形按钮项添加到第二个视图控制器上的导航栏。当我在导航栏上放下一个按钮时,它会被添加到工具栏中。我不能双击导航栏添加标题。在大纲中,我看到第二个视图控制器上没有导航项,但它位于第一个视图控制器中。

我可以通过编程方式向导航栏添加按钮,但我想在Storyboard中直观地进行操作。我的问题是,这个设置有什么问题,或者这是Xcode的错误?

enter image description here

enter image description here

7 个答案:

答案 0 :(得分:89)

对于XCode 6,第二个视图控制器以后的UINavigationItem不会自动添加到故事板内的视图控制器对象上。在将UINavigationItem添加到其上之前,您必须将UIBarButtonItem拖到该视图控制器对象的导航栏上。

我不确定为什么它是这样设计的。我几周前才发现这件事。

Xcode 6 UiNavigationItem

答案 1 :(得分:12)

如果您有大量的视图控制器和非常少的自定义自动布局功能,您可以禁用大小类,然后重新启用它将在故事板中添加所有缺少的导航栏。

enter image description here

enter image description here

如果你有大量的自定义自动布局内容,显然不推荐使用。

如果您只有一个缺少导航栏的UIViewController,只需将UINavigationItem放到其上即可。

答案 2 :(得分:3)

如果您正在使用Xcode 7 beta 4/5,请尝试重新启动Xcode,它解决了我的问题

答案 3 :(得分:1)

我刚刚碰到这个问题,它似乎受到显示视图控制器的segue的影响。

如果segue中的“种类”设置为“显示(例如,推送)”,则无法将其拖动到右上角。但是,如果您将“种类”设置显式更改为“推”,则可以这样做。

编辑:实际上我只是注意到“ Push”已被弃用。不知道苹果在这里想什么。但是,您可以在添加按钮后将其更改回“显示”,这似乎可行:D

答案 4 :(得分:0)

对于层次结构中的第二个视图控制器,您可以在属性中设置标题,而无需添加"导航项" enter image description here

答案 5 :(得分:0)

我认为这是一个错误。我遇到了同样的问题。我通过禁用大小类来修复此问题,然后启用它。

您可以在“界面”构建器文档中禁用和启用大小类。

enter image description here

答案 6 :(得分:0)

这很简单。您只需要首先使用navigaitonItem作为按钮的持有者,然后您可以在其上添加barButtonItems。