为什么navigationItem.titleView不起作用?

时间:2008-12-05 04:37:34

标签: iphone cocoa-touch

我想在导航栏的中心放置一个UIButton。基于该文档,我似乎需要设置标题视图,并确保leftBarButtonItem为nil。但它对我不起作用。这是代码。

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:@"List" forState:UIControlStateNormal];
self.navigationItem.leftBarButtonItem = nil;
[self.navigationItem.titleView addSubview:btn];

3 个答案:

答案 0 :(得分:28)

如果你检查你的按钮,你会发现通过使用方便方法来初始化它,你会得到一个0x0按钮,它位于正被添加到的视图范围内的0,0。在执行此操作之前,您必须定义按钮的frame属性的内容。请参阅以下代码:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 0, 400, kCustomButtonHeight);
[btn setTitle:@"list" forState:UIControlStateNormal];
self.navigationItem.titleView = btn;

答案 1 :(得分:7)

默认情况下,navigationItem的视图设置为nil。

您需要使用

self.navigationItem.titleView = btn;

答案 2 :(得分:7)

在我的情况下,我试图在子视图控制器中设置它,这解决了它

self.parentViewController.navigationItem.titleView = titleView;