为什么navigationItem.titleView不起作用?

Blu*_*hin 11 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];
Run Code Online (Sandbox Code Playgroud)

wis*_*ark 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;
Run Code Online (Sandbox Code Playgroud)


Rob*_*ert 8

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

self.parentViewController.navigationItem.titleView = titleView;
Run Code Online (Sandbox Code Playgroud)


Aug*_*ust 7

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

你需要使用

self.navigationItem.titleView = btn;
Run Code Online (Sandbox Code Playgroud)