Xcode Storyboard 问题 - 按钮栏按钮仅出现在 TableViewController 的底部

Posted

技术标签:

【中文标题】Xcode Storyboard 问题 - 按钮栏按钮仅出现在 TableViewController 的底部【英文标题】:Xcode Storyboard issue - Button Bar Button only appears at the bottom of a TableViewController 【发布时间】:2014-09-18 22:55:16 【问题描述】:

不确定这是 Xcode 6 中的错误(我使用 Beta 4)还是预期的行为。

当我在导航控制器中有视图控制器并“推送”(不推荐使用的 segue)表视图控制器 (TVC) 时,我可以将条形按钮项拖到 TVC 中的导航栏中。

当我做同样的事情但“显示”(新的自适应转场)TVC 时,条形按钮项会下降到底部,实际上在我构建项目时不会显示。

解决此问题的一个技巧是将其设置为“Push”开始,拖动 Bar Button Item,然后将 segue 更改为“Show”。但是——这有必要吗?这是 Xcode 错误还是我遗漏了什么?

【问题讨论】:

谢谢你的小“黑客”。我遇到了同样的问题......我不确定它为什么会这样,我找不到任何解释。尽管如此,您的解决方案还是帮助了我,非常感谢! 同样的问题,真的是bug? 使用已弃用的 Push 然后切换回 Show 的“hack”也对我有用。谢谢! 这应该是正确的答案。 【参考方案1】:

我尝试使用底部的栏按钮创建您面临的问题。这不是问题或 Xcode 错误。 但是在新的 Xcode 中,当您使用 segue 来“显示(例如推送)”时,在下一个视图中您将不会看到导航栏。 您需要添加导航栏,然后将栏按钮项添加到导航栏。 希望您的问题能得到解决。

【讨论】:

很好的答案,我唯一的批评是它看起来好像你实际上是在拖动“导航项”而不是“导航栏”。有道理,好像“推送”默认添加了一个导航项,而“显示”没有。 Push 默认添加导航栏,但如果您想从情节提要中更改导航栏按钮,您可以通过这种方式进行。您可以以编程方式制作自定义后退按钮和左/右按钮。我已经尝试使用 xcode 6 在情节提要中做到这一点,但遇到了这个问题,所以通过使用情节提要找到了这个解决方案。但是我建议以编程方式更改导航栏。如您所见,Title viewController 中没有导航项,但在 ViewController 中。 因此您需要在 Title viewController 中添加导航项,否则如果您尝试添加 bar 按钮,它将被添加到视图控制器底部的工具栏中。 太棒了!太感谢了。添加导航栏,然后添加导航项对我有用。【参考方案2】:

我遇到了同样的问题并通过简单地选择视图控制器并将“顶部栏”从推断更改为“不透明导航栏”来修复它。这让我可以在顶部添加 Bar Button Item。

【讨论】:

我也这样做了,它让我在右上角放置了一个 BarButtonItem。为什么这会起作用?我的猜测是右上角/左上角的“项目”是透明的,而父 VC 的右/左项目可以通过这些点绘制。这就是为什么您可以以编程方式将这些项目设置为 barbutton 的原因,但这仍然是设置父项目的原因。通过将孩子设置为不透明,您可以直接设置它们。然而,这只是一个对我来说似乎合理的理论,而不是基于直接证据。很想知道到底发生了什么。

以上是关于Xcode Storyboard 问题 - 按钮栏按钮仅出现在 TableViewController 的底部的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 12中Storyboard全局预览功能(Minimap)

Xcode -(OC版)Storyboard教程 1.5:Segues的介绍

在 Xcode 13 中将标签/按钮从 StoryBoard 连接到 ContentView

iOS 5:使用 Xcode/Storyboard 在工具栏中定位条形按钮项

Xcode:如何为使用 Storyboard 创建的子视图设置委托?

iOS 8 导航栏在 Storyboard 上的第二个 ViewController 中无法访问