43

我在 Storyboard 中设置了一个视图控制器,它嵌入在导航控制器中。在这个导航控制器中,我检查了 Shows Navigation Bar 和 Shows Toolbar,并在 Simulated Metrics 中分别启用了 Top Bar 和 Bottom Bar 中的导航栏和工具栏。然后我“显示例如推送”从视图控制器到另一个视图控制器。在两个视图控制器上,我以相同的方式设置了模拟指标,因此导航栏和工具栏在所有三个控制器上都是可见的。

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

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

在此处输入图像描述

在此处输入图像描述

4

7 回答 7

91

对于 XCode 6,UINavigationItem第 2 个视图控制器及以后的视图控制器不会自动添加到情节提要内的视图控制器对象上。在添加之前,您必须将 拖到该UINavigationItem视图控制器对象的导航栏UIBarButtonItem上。

我不知道为什么它是这样设计的。我几周前才发现这一点。

Xcode 6 UiNavigationItem

于 2014-08-31T02:00:29.103 回答
12

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

在此处输入图像描述

在此处输入图像描述

如果你有大量的自定义自动布局链接,显然不推荐。

如果您只有一个缺少导航栏的 UIViewController,只需将 UINavigationItem 拖放到它上面。

于 2015-03-20T03:56:08.300 回答
3

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

于 2015-08-25T05:51:42.783 回答
1

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

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

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

于 2019-01-10T10:23:18.440 回答
0

对于层次结构中的第二个视图控制器,您可以在属性中设置标题,而无需添加“导航项” 在此处输入图像描述

于 2015-01-14T10:06:23.087 回答
0

我认为这是一个错误。我有同样的问题。我通过禁用尺寸类解决了这个问题,然后启用它。

您可以在界面生成器文档中禁用和启用尺寸类。

在此处输入图像描述

于 2016-05-25T05:12:42.073 回答
0

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

于 2017-04-21T21:30:56.133 回答