首页 文章

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

提问于
浏览
42

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

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

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

enter image description here

enter image description here

7 回答

  • 0

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

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

    Xcode 6 UiNavigationItem

  • 0

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

    enter image description here

    enter image description here

    Obviously not recommended if you have a ton of custom auto layout stuff linked up.

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

  • 3

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

  • 12

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

    如果segue中的“Kind”设置为“Show(例如Push)”,则无法将项目拖动到右上角 . 但是,如果您明确地将“Kind”设置更改为“Push”,则可以执行此操作 .

    编辑:实际上我只是注意到“推”被弃用了 . 不确定苹果在想什么 . 但是,您可以在添加按钮后将其更改回“显示”,它似乎可以正常工作:D

  • 88

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

  • 0

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

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

    enter image description here

  • 1

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

相关问题