self.title vs self.navigationItem.title

Jak*_*čar 19 iphone

titleUIViewController属性的目的是什么,标题是否已经设置好了navigationItem.title

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

Pet*_*ter 24

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


小智 8

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

self.title = @"Some Title";
Run Code Online (Sandbox Code Playgroud)

要么

[self setTitle:@"Some Title"];
Run Code Online (Sandbox Code Playgroud)

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

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

干杯-


zpe*_*esk 7

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

Apple为titleUIViewController 的属性提供了以下描述.

一个本地化字符串,表示此控制器管理的视图.