1

我有这个结构:

故事板截图

当我想从情节提要中添加“UINavigationItem”时,导航栏被“禁用”,所以我尝试以编程方式添加右键:

UIBarButtonItem *button = [[UIBarButtonItem alloc]
                           initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
                           target:self
                           action:@selector(showPickerView:)];
self.navigationItem.rightBarButtonItem = button;

但什么也没有发生。我从情节提要重命名了导航栏标题,但是当我运行应用程序时,标题没有设置。我真的不知道问题的根源是什么。只是出现了后退按钮。谢谢您的帮助。

4

4 回答 4

2

标签栏控制器中的每个项目都应该有一个导航控制器作为根控制器(好吧,如果你不需要它们,你不需要它们都拥有一个导航控制器)。您当前拥有的是导航控制器中的标签栏控制器(除非它是模态的),因此标签栏控制器中包含的视图控制器无法看到导航控制器。

于 2013-07-17T17:04:24.817 回答
1

正如其他答案所指出的,您的层次结构UINavigationViewController不正确。将UITabBarViewController永远是您的UINavigationViewControllers.

对于每个作为“选项卡”的UIViewController,您需要UINavigationViewController在每个将具有 segues 的“选项卡”UIViewConrolller 的“前面”。

因此,正如其他人在此线程上指出的那样,您不需要为每个“选项卡”使用 UINavigationViewController UIViewController,仅用于“选项卡”,这些“选项卡”将与您想要使用 UINavigationViewController 跟踪导航的其他视图相结合

层次结构可以在@App Dev Guy's answer here中看到

在 Swift 2 中,Xcode 7 有一个非常方便的功能来添加 UINavigationController:

  1. 选择用作“选项卡”的 UIViewControllerUITabBarNavigationController
  2. 在顶部 Xcode 菜单上,选择“编辑器”->
  3. “嵌入”->
  4. “导航控制器”

    在此处输入图像描述

于 2016-01-17T21:25:03.853 回答
0

像这样试试。这与您的操作方式有些不同,并且对我有用:

UIBarButtonItem *button = [[UIBarButtonItem alloc] 
                           initWithTitle:@"title"                                            
                           style:UIBarButtonItemStyleBordered 
                           target:self 
                           action:@selector(showPickerView:)];
self.navigationItem.rightBarButtonItem = button;

如果要在情节提要中执行此操作,则不要拖动“导航项”,而是拖动“条形按钮项”。

于 2013-07-17T16:44:30.933 回答
0

我试图重现你的问题。

  1. 我开始了一个新的“单一视图”项目。
  2. 选择了 iPhone 故事板
  3. 选择视图控制器
  4. 菜单 -> 编辑器 -> 嵌入 -> 导航控制器。
  5. 打开对象浏览器
  6. 在搜索栏中键入“条形按钮项”
  7. 在导航栏上绘制栏按钮项。

完毕。看看你是否可以这样做。

在此处输入图像描述

于 2013-07-17T17:00:02.320 回答