将segmentcontroller添加到titleView后,无法为导航栏命名

时间:2012-08-10 14:49:28

标签: ios uinavigationitem

我现在的观点是包含3 uitabbaritem。在第一个标签中,我按照

segmentcontroller添加self.navigationItem.titleView
-(void)viewDidLoad {

    // Enable 'segmentControl' on navigation bar
    self.navigationItem.titleView               =   self.segmentedControl;
}

最终结果是

enter image description here

接下来,当我切换到第二个uitabbaritem时,我隐藏了段控制器,并为下面的导航命名了标题

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    if ( item.tag == 1 ) {
        self.navigationItem.titleView.hidden    =   NO;
    }

    if ( item.tag == 2 ) {
        self.navigationItem.titleView.hidden    =   YES;
        self.title          =   @"support";
    }
}

但是,点击第二个uitbarbatitem后,标题不会显示在导航栏上。 enter image description here

如果你知道我做错了什么,请告诉我。感谢

1 个答案:

答案 0 :(得分:1)

title设置时,titleView不显示,无论它是否隐藏。您必须将titleView设置为nil

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
  if ( item.tag == 1 ) {
      self.navigationItem.titleView = self.segmentedControl;
      self.title = nil;
  }

  if ( item.tag == 2 ) {
      self.navigationItem.titleView = nil;
      self.title = @"support";
  }
}