UINavigationController子类不会在加载时设置titleView

时间:2014-01-04 15:40:31

标签: objective-c cocoa-touch ios7 uinavigationcontroller

我刚创建了UINavigationController的简单子类。

#import "TTNavigationController.h"

@implementation TTNavigationController

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIImage *logo = [UIImage imageNamed:@"logo"];
    UIImageView *logoView = [[UIImageView alloc] initWithImage:logo];
    self.navigationItem.titleView = logoView;
}

但是当我运行项目时,导航栏上没有带有徽标的titleView

否则,如果我尝试在我的视图控制器的viewDidLoad中移动这3行代码就可以了。为什么呢?

1 个答案:

答案 0 :(得分:3)

您无法使用self.navigationItem,因为永远不会使用导航控制器所拥有的navigationItem。它具有此属性,因为它是一种视图控制器,但实际上并未显示,因为显示了viewControllers(或者更具体地说,topViewController s)navigationItem

因此,更改视图控制器navigationItem(直接或按下时)。