始终隐藏标签栏控制器中“更多”导航栏的标题

时间:2011-10-23 17:24:36

标签: iphone objective-c uitabbarcontroller edit title

我有以下问题。

我有一个UINavigationBar的背景图片,所以我必须隐藏导航栏中的所有标题。问题来自TabBarController的“更多”导航栏。我设法隐藏了它,但这只是第一次显示时才会发生。当我从中选择一个项目并返回时,会再次显示“更多”。

我猜我应该在“更多”视图控制器的某种“viewWillAppear”委托方法中禁用标题,但我不知道该怎么做。

这是我第一次显示“更多”,正如您所看到的,徽标就在那里(当然是污迹:))但是,更多不是: http://www.flickr.com/photos/68985587@N02/6272805069/lightbox/

这是“更多”视图控制器中第一个项目的视图控制器: http://www.flickr.com/photos/68985587@N02/6272805241/in/photostream/lightbox/

按下导航栏中的“更多”左按钮返回后,我得到了这个: http://www.flickr.com/photos/68985587@N02/6273332152/in/photostream/lightbox/

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

解决方案是将委托设置为更多视图控制器并根据委托方法进行操作。

首先,我将委托设置为“更多”视图控制器(在我的情况下在appdelegate中):

[tbc.moreNavigationController setDelegate:self];

我继续实施以下方法:

-(void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if([viewController.title isEqualToString:@"More" ])
    {
        UILabel *label = [[[UILabel alloc] init] autorelease];
        viewController.navigationItem.titleView = label;
        label.text = @"";   
    }

}

这不仅仅是第一次被调用,而是每次视图控制器出现时。即使按下后退按钮也是如此。

答案 1 :(得分:1)

您可以通过实现 UITabBarDelegate 的委托方法tabBar:didSelectItem:来检查单击 UITabBarController 的哪个选项卡。如果单击了第五个项目(“更多”项目),则可以设置如下标题:

[[[tabBarController moreNavigationController] visibleViewController] setTitle:@""];

我希望,它有效,我没有尝试过。祝你好运!

答案 2 :(得分:0)

我建议您查看此链接herehere

高,根据超过5个图标不建议使用。您可以搜索TabBar的链接。

答案 3 :(得分:0)

您可以替换标签:

UITabBarItem *i = self.tabBarController.tabBar.items[4];
[i setTitlePositionAdjustment:UIOffsetMake(0., 300.)];

所以它有一个偏离顶部的偏移让它消失......