12

我不明白两者之间有什么区别 self.navigationcontroller.navigationitemself.navigationitem 我有基于导航的应用程序,并且在 navigationController 的viewDidLoad方法中rootViewController,我使用此代码将 NavigationItem titleView 设置为自定义图像

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationItem.titleView =titleImage;

顺便说一句,如果我尝试通过这种方式更改标题视图

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
self.navigationcontroller.navigationItem.titleView =titleImage;

什么也没发生。,并且当navigationcontroller 将另一个视图推送到堆栈时,navigationitem 的titleview 被清除并且引用设置为nil,而且我注意到和的引用self.navigationcontroller.navigationitemself.navigationitem一样。

4

2 回答 2

9

我相信您要问的是以下内容:self.navigationController.navigationItemself.navigationItem。我忽略了问题的其余部分,因为它对问题并不是很重要。

据我了解self.navigationController.navigationItem是无用的,因为它正在访问导航控制器的导航项(即您的 rootViewController)。您真正想要的是self.navigationItem视图控制器的导航项,因为这基本上会显示在您的视图控制器中。

UINavigationController是子类的子类,UIViewController只是子类化self.navigationController.navigationItem的溢出方法。它没有做任何积极的事情(至少在我的经验中)。

编辑:阅读内容以获得进一步说明。

于 2012-04-26T14:44:13.090 回答
1

它们是不同的。如果你动态添加UINavigationController,那么你使用self.navigationController.navigationItem.

请更好地澄清你的问题。

于 2012-04-26T12:08:14.920 回答