设置在Interface Builder中创建的导航栏的标题

Ste*_*eve 51 uinavigationbar ios

我有一个模态视图控制器,其视图来自XIB.我希望它具有与我的基于导航的应用程序的其余部分相同的外观和感觉,但它不是一个被推送到导航堆栈的视图,它以模态呈现.我拖了一个UINavigationBar并将它作为一个插座,但它没有要设置的title属性.我有两个字段可以调出这个模态视图,我希望标题设置不同,具体取决于哪一个创建模态视图.

cod*_*ark 90

UINavigationBar管理一堆UINavigationItems很像UINavigationController经理一堆UIViewControllers.要设置直接可见的内容,您应该使用pushNavigationItem:animated:setItems:animated:使用您想要条形图反映的视图控制器的navigationItem.

例如:

self.navigationItem.title = @"A custom title";
[self.navigationBar pushNavigationItem:self.navigationItem animated:NO];
Run Code Online (Sandbox Code Playgroud)

上面的代码中有一个navigationBar引用独立导航栏的属性.

如果你不想自己管理它,你可以像mplappert建议的那样做,并将你的视图控制器(没有独立的UINavigationBar)嵌套在一个UINavigationController并以模态方式呈现导航控制器而不是你的视图控制器.


typ*_*ror 64

如果您已经在IB中定义了UINavigationBar,也会发现这种更简单的方法.假设self.navigationBar是你的IBOutlet:

self.navigationBar.topItem.title = title;
Run Code Online (Sandbox Code Playgroud)


use*_*957 8

(使用XCode 4.5.2)找到一种直接在Interface Builder中工作的方法 - 无需设置代码.

在(IB)中选择ViewController对象后,Identity Inspector下有一个标记为" 用户定义的运行时属性 "的部分.我添加了String类型的keyPath"title"并将其设置为我想要的值.

经过测试,当按下Nav控制器堆栈并以模态方式打开时(当然使用Modal Nav Controller),它可以正常工作.