xcode / storyboard:无法将栏按钮拖动到顶部的工具栏

时间:2015-04-03 16:01:36

标签: ios xcode navigation uibarbuttonitem

我有一个视图控制器,它是表格的详细视图。当您单击表格的行时,它将转到详细视图。详细视图嵌入在导航控制器中,导航栏的左上角有一个按钮,可将您发送回表格。到目前为止一切都很好。

我现在想在导航栏的右侧添加一个编辑按钮,以便您可以编辑详细视图。我的计划是这将以模态方式添加另一个视图控制器,以便您编辑项目的详细信息。标准的东西。

但是,当我尝试将一个条形按钮项目从对象列表拖动到导航栏时,它将不会。相反,当我松开鼠标按钮时,它会在底部的标签栏控制器上留下条形按钮。 (我的导航方案包括不同的选项卡,每个选项卡包含一个表格,详细视图等。)

之前有人遇到这个问题并且可以建议我做错了什么或某种解决方法将条形按钮项添加到导航屏幕的右侧。我是否必须在代码中添加它?

感谢您的任何建议。

20 个答案:

答案 0 :(得分:153)

我在使用Xcode6时遇到了同样的问题,我注意到UINavigationItem会自动添加到您嵌入到NavigationController中的第一个ViewController,但是对于后续的ViewControllers,您必须手动添加它,如下所示:

  1. 在对象库中,找到导航项,然后将其拖到您的 故事板中的第二个ViewController。
  2. 在对象库中,找到 条形按钮项然后将其拖动到您在上一步中创建的导航项。
  3. 现在,您的条形按钮会粘在场景的顶部。

    <强>更新 该解决方案仍适用于XCode 7,但我想添加更多描述性照片。以防万一有人不熟悉上面提到的标准或技术名称。注意右边的红色箭头,它们参考上面提到的步骤1,步骤2。还要注意左侧红色矩形的视图层次结构。 enter image description here

答案 1 :(得分:66)

令人讨厌的伎俩:

  1. 将您的segue更改为推送。
  2. 设置所需内容
  3. 回到展示
  4. 然后内容将是可编辑的,并且您有一个非弃用的segue样式。

答案 2 :(得分:32)

您的故事板的视图控制器可能缺少Navigation Item。您可以从对象库中拖出一个,然后将其放在视图控制器上。

然后,您就可以将条形按钮项拖放到导航栏的左侧或右侧。

答案 3 :(得分:22)

我解决了它。将“导航项”拖到详细视图中。而不是你可以在栏按钮项目中拖动。

答案 4 :(得分:8)

我解决这个问题的方法是,不是将UINavigationController拖入Storyboard并尝试添加UIBarButtonItems,而是拖入UITableViewController然后转到

编辑 - &gt;嵌入 - >导航控制器

它给出了与之前相同的结果,除了我可以将UIBarButtonItems添加到导航栏的两侧而没有任何问题。

答案 5 :(得分:5)

它实际上是xcode问题。 对我有用的一个技巧是在LEFT上的VIEW FILE STRUCTURE中添加条形按钮。直接在视图上添加。 希望它能帮助你。:)

答案 6 :(得分:5)

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

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

enter image description here

答案 7 :(得分:4)

我也有这个问题,关闭并重新打开为我工作的项目。

答案 8 :(得分:3)

我相信这是一个XCode的怪癖。我遇到过同样的问题。我不得不重置Xcode并在故事板上移动事物的位置以最终实现它。它现在正在工作。

答案 9 :(得分:3)

我认为这是Xcode的一个错误。在Xcode 8中,将标签栏视图控制器前的故事板中的segue更改为其所有选项(show detailpresent ...)。然后回到show。尝试拖动栏按钮项并修改图块。它对我有用!

答案 10 :(得分:1)

你试过&#34;清洁&#34;你的项目?我知道有时候会帮助我(只需转到&#34; Product&#34;&gt;&#34; Clean&#34;)。或者,或者,删除导航栏并再次尝试。

如果您认为这是一个编程错误,请随时传递您的代码。我很乐意以任何方式提供帮助。 :)

答案 11 :(得分:1)

对于XCode 8

这里有很多答案。我尝试了其中一些,但我无法做到。 所以我找到了我的解决方案,只需选择您的ViewController,转到属性检查器部分,然后将顶栏更改为不透明导航栏,繁荣。您将在故事板上看到导航栏。您可以更改标题或添加一些项目。如果您不想保留不透明,可以将样式更改为推断

enter image description here

答案 12 :(得分:1)

我在xcode 8中遇到了同样的问题。我只需关闭xcode并重新打开项目,然后我就可以将条形按钮添加到根控制器而没有任何问题。

答案 13 :(得分:1)

我也遇到了同样的问题。我能够通过选择根视图控制器选项来修复此问题,然后在模拟矩阵中将顶部栏选项更改为不透明导航栏并且能够在导航顶部添加项目bar.Hope这个答案对某人有帮助。

答案 14 :(得分:1)

同样的问题。我在导航控制器中有一个表视图控制器,许多ViewControllers跟随链进一步向下。 A&#39;导航项目&#39;正在为FIRST根视图控制器自动创建,我可以添加一个&#39; Bar Button Item&#39;这没有问题。通过故事板,拖放。但那就是全部。在下面的表视图控制器和其他视图控制器上,即使它们位于初始导航控制器(出现自动生成的后退按钮)内,故事板也永远不会让我添加一个条形按钮项。

Wael Showair的解决方案对我不起作用。条形按钮项目不会出现。

我最终以编程方式解决了它(Swift 2.0):

var testButton = UIBarButtonItem(title: "Test Button", style .Plain, target: self, action: "testButtonMethod")
self.tabBarController?.navigationItem.rightBarButtonItem = testButton

无需额外的导航项目或栏按钮项目。

答案 15 :(得分:1)

您必须重置xCode IDE。关闭xCode并在终端写下以下代码......它会工作。

rm -rf $HOME/Library/Application Support/Developer/Shared/Xcode
rm -rf $HOME/Library/Preferences/com.apple.dt.Xcode.*
rm -rf $HOME/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
rm -rf $HOME/Library/Developer/Xcode

答案 16 :(得分:0)

将“条形按钮项目”拖动到“导航控制器”,而不是将其拖动到“详细信息视图控制器”。 将详细信息视图嵌入到“导航视图”中时,“导航项”将添加到“详细信息视图控制器”中。如果将“条形按钮项目”拖到导航项的右侧,则该项目将包含在“右条形按钮项目”下

答案 17 :(得分:0)

在Xcode 10中,我只是将转到该新视图控制器的segue的类型更改为“推(不推荐使用)”,并在进行此切换后添加了允许的导航项。如果您切换回原来想要的segue类型,则导航项将保留。

答案 18 :(得分:0)

就像Mark Lyons所说的,我使用了相同的解决方案。

  • 首先使用强制搜索
  • 添加了酒吧项目
  • 返回以显示segue
  • 完成

答案 19 :(得分:0)

在Xcode 11中,您可以将一个按钮拖动到导航栏上以创建您的栏按钮。