另一种以编程方式向导航栏添加标题的方法?

时间:2011-07-19 16:13:34

标签: iphone objective-c uilabel uinavigationbar

我正在尝试为我的导航栏添加标题,我已经以编程方式添加了该标题。我知道我可以创建一个标签并将其添加为子视图,但是我需要添加大量的配置才能正确放置,就像在典型的导航栏标题中一样。还有其他方法可以做到这一点:

- (void)viewDidLoad
{
[super viewDidLoad];

//Adding navBar programmatically 
CGFloat width = self.view.frame.size.width;
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,0,width,52)];
navBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;

//Adding title programmatically 
UILabel *lblTitle  = [[UILabel alloc]initWithFrame:CGRectMake(10,10,80,30)];
lblTitle.text = @"Title";
[navBar addSubview: lblTitle];

[self.view addSubview:navBar];

}

如果没有(对不起另一个问题,只是认为它有关)我如何设置我的lblTitle看起来像你会在大多数应用程序中找到的普通导航栏标题。

谢谢!

4 个答案:

答案 0 :(得分:8)

如果要通过编程方式添加导航栏,请使用此

 (void)viewDidLoad {
    [super viewDidLoad];
    self.title = @"yourTitle";
}

您也可以使用

self.navigationItem.title = @"yourTitle";

答案 1 :(得分:4)

您可以使用

navigationBar.topItem.title = @"Your Title";

答案 2 :(得分:3)

您问题的最佳答案就是使用UINavigationController免费获取其导航栏,但如果由于某种原因您无法执行此操作,则需要使用自定义{{1并使用其属性,直到匹配内置的样式。

答案 3 :(得分:0)

如果一个简单的UILabel不能让你满意,那么是的,你需要大量的配置,或者你可以在Interface Builder中完成这些操作来改善你的视图。我建议您在navigationItem.titleView中将其设置为-(void)viewDidLoad,而不是将其添加为子视图。