代码之家  ›  专栏  ›  技术社区  ›  BlueDolphin

为什么navigationItem.titleView不工作?

  •  12
  • BlueDolphin  · 技术社区  · 17 年前

    我想在导航栏的中心放一个UIButton。根据文档,我似乎需要设置标题视图,并确保left BarButtonItem为nil。但这对我来说行不通。这是代码。

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btn setTitle:@"List" forState:UIControlStateNormal];
    self.navigationItem.leftBarButtonItem = nil;
    [self.navigationItem.titleView addSubview:btn];
    
    3 回复  |  直到 17 年前
        1
  •  28
  •   wisequark    17 年前

    如果你检查你的按钮,你会发现通过使用便利方法初始化它,你只剩下一个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;
    
        2
  •  14
  •   Robert MouzmiSadiq    11 年前

    在我的例子中,我试图在儿童视图控制器中设置它,这修复了它

    self.parentViewController.navigationItem.titleView = titleView;
    
        3
  •  7
  •   August    17 年前

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

    你需要使用

    self.navigationItem.titleView = btn;