self.title vs self.navigationItem.title

时间:2009-06-06 19:07:13

标签: iphone

UIViewController的title属性的目的是什么,标题不能用navigationItem.title设置?

两者似乎都有效,我只是想知道为什么会出现这种看似重复的功能。

4 个答案:

答案 0 :(得分:24)

在UIViewController中,title和navigationItem.title是不同的。一个例子:如果你在UITabBarController中有一个视图控制器(在NavigationController中),那么如果你设置了self.title,它会覆盖选项卡的名称以及顶部标题。如果设置了self.navigationItem.title,那么它只会更改顶部标题,而不会更改标签栏名称。

答案 1 :(得分:8)

作为程序员,视图控制器的标题既是一种约定,也是一种便利。主叫...

self.title = @"Some Title";

[self setTitle:@"Some Title"];

确保需要检索视图控制器标题的任何对象(如导航栏)都可以这样做。使用navigationItem.title将允许您根据需要覆盖此标题,但可能会考虑更“时尚”来设置控制器的标题。

你可以做IMO,但前者会为你节省一些打字; - )

干杯 -

答案 2 :(得分:7)

设置navigationItem.title时,您将在视图顶部设置导航栏的标题。当您按下新视图控制器时,这很重要,因为前一个视图的标题(由navigationItem.title设置)将是后退按钮的文本。此外,如果您的项目没有导航栏,navigationItem.title将无效。

Apple为UIViewController的title属性提供了以下描述。

  

表示此控制器管理的视图的本地化字符串。

答案 3 :(得分:3)

UIViewController具有title属性。在navigationItem和tabBarItem中都覆盖title属性。因此,如果我们有tabbar和navigationcontroller的应用程序,并且设置self.title = @“somethng”会将该标题设置为navigationTitle和tabBartitle。