【问题标题】:UIBarButtonItem not shown in ViewUIBarButtonItem 未显示在视图中
【发布时间】:2015-12-11 13:33:04
【问题描述】:

我正在尝试将两个项目添加到视图中的导航控制器。之前我总是选择视图然后单击产品 -> 嵌入 -> 导航控制器。

我注意到这突然在 xCode 7.1 中不再起作用。我将 Xcode 更新到 7.2 版,并希望这能解决我的问题,但事实并非如此。

我尝试使用代码添加 UIBarButtonItems,但这也不起作用。但是,当我更改导航控制器的颜色时,我可以看到颜色的结果。

这是我尝试将项目添加到导航栏的代码:

    let left = UIBarButtonItem(image: UIImage(named: "hammer"), style: UIBarButtonItemStyle.Plain, target: self, action: "expandButtonPressed")
    let right = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "buildButtonPressed")

    navigationController?.navigationItem.rightBarButtonItem = right
    navigationController?.navigationItem.leftBarButtonItem = left

expandButtonPressedbuildButtonPressed 方法已添加到我的视图控制器中。

下面是几个屏幕截图,解释了我的视图中有哪些控件,以及如何设置不同的视图。

这是运行应用程序的屏幕截图:https://drive.google.com/open?id=0B_FbD3kpEuvXYS1QYks0YTBVNmc

我希望有人可以帮助我。

【问题讨论】:

  • 你在运行时看到了什么?
  • @MarcosCrispino 一个空的导航栏
  • 从第一个视图控制器中移除导航控制器

标签: ios xcode swift storyboard swift2


【解决方案1】:

navigationItem 表示 UIViewController 希望其导航栏在 UINavigationController 中的样子。

使用navigationController?.navigationItem.rightBarButtonItem = right,您正在修改navigationController 本身的navigationItem。

您想要的是简单地更改 UIViewController 的 navigationItem,因此删除您声明的 navigationController?. 部分:

navigationItem.rightBarButtonItem = right

所有 UIViewController 都有 navigationItems,这就是 UINavigationController 本身有一个的原因。

【讨论】:

    【解决方案2】:

    如果可以的话,我会对此发表评论;但是故事板中的导航控制器标签栏控制器之前似乎有点时髦。

    我似乎记得一些 Apple 文档说标签栏应该是根视图。我现在看不到它,但我会继续寻找。

    【讨论】:

    • 是的,UITabBarController 应该是根,UINavigationController 是每个子视图控制器的。
    【解决方案3】:

    您必须将每个子 ViewControllers 放在 UINavigationBarController 中。像这样:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多