Iphone UINavigationBar和UINavigationItem,但没有标题

Iphone UINavigationBar和UINavigationItem,但没有标题,iphone,cocoa-touch,interface-builder,Iphone,Cocoa Touch,Interface Builder,我有一个控制器。其中一个选项卡是UINavigationController。推动和弹出导航堆栈的工作方式很好。每个UIViewController都有自己的NIB,只连接UIView。但不幸的是,我只为根导航控制器显示了一个标题 通常,在NIB中创建UIViewController时,可以设置标题属性。但是在这种情况下,视图控制器是NIB文件的所有者。在IB中,没有办法设置标题 我能做的是在initWithNib中设置标题,然后它就会显示出来 if (self = [super initWit

我有一个控制器。其中一个选项卡是UINavigationController。推动和弹出导航堆栈的工作方式很好。每个UIViewController都有自己的NIB,只连接UIView。但不幸的是,我只为根导航控制器显示了一个标题

通常,在NIB中创建UIViewController时,可以设置标题属性。但是在这种情况下,视图控制器是NIB文件的所有者。在IB中,没有办法设置标题

我能做的是在initWithNib中设置标题,然后它就会显示出来

if (self = [super initWithNibName: @"MyViewController" bundle:nil]) {
    self.title = @"test";
}
但我想在IB中定义标题


我在这里有点迷路了。有什么建议吗?

这在IB中确实是完全可能的

您需要加载带有UITAB控制器的NIB文件。然后,将查看模式设置为中间选项(左上角有3个图标)。这将所有组件显示为嵌套树

然后选择有问题的视图控制器,并调出属性检查器。在那里,您将看到您可以更改标题

已经包括了一个截图,所以你可以看到我的意思


显然,在这种情况下,他们无法设置UIViewController的标题。太糟糕了。

的确如此。我就是这样设置*根控制器的标题的。问题是关于其他被推到顶部的控制器。到目前为止,我只知道如何在代码中更改它们的标题,因为IB不公开文件所有者的title属性。打开例如“已完成”的笔尖。这就是我感兴趣的地方。您示例中的UITAB控制器是根控制器。导航控制器本质上是与它下面的不同视图过程相同的对象,这就是为什么如果要为子视图设置标题,则需要在代码中这样做。但是,您不必在init方法中调用它-只需self.title=@“test”即可在任何UIViewController委托方法中调用它。导航控制器管理视图控制器(不是子视图-至少不是直接管理)。我指的是由导航控制器处理的根视图控制器。将视图控制器推到导航堆栈上时,将显示视图控制器的标题。当NIB创建视图控制器实例时,应该可以在IB中设置标题。到目前为止,我还没有看到这样做的方法。这就是问题所在。我和你一样,相信这应该是可能的,我真的很想弄清楚怎么做。从那以后的1.5年里你不会碰巧发现了吧?