当视图在栏上时为 UITabBar 设置单独的标题与更多...?

Posted

技术标签:

【中文标题】当视图在栏上时为 UITabBar 设置单独的标题与更多...?【英文标题】:Setting a separate title for UITabBar when the view is on the bar vs. More...? 【发布时间】:2010-01-30 23:18:29 【问题描述】:

在线程“Is there a way to set a separate short title for UITabBar?”中询问(已编辑)这个问题:“如何给视图提供短名称以显示在选项卡栏上,并在同一视图链接到表视图(有更多空间)。”答案是为导航控制器和 tabBar 控制器提供单独的标题。我不认为这完全回答了这个问题。有 两个 位置可以看到 tabBar 标题:在标签栏本身和作为 tableView 的“更多...”屏幕上。

在标签栏上可见时,标题需要较短,但在更多视图上时,标题需要较长。实现它的诀窍是什么?

【问题讨论】:

【参考方案1】:

回答我自己的问题:在 UITabBarController 中使用蛮力:

// UITabBarControllerDelegate
- (void)tabBarController:(UITabBarController *)tabBarController didEndCustomizingViewControllers:(NSArray *)viewControllers changed:(BOOL)changed

    if ( changed )  // swap tabBar titles for the controllers with long and short names
        int index = 0; // 0, 1, 2, 3 are on the tab bar, others are on the More tableView
        for ( UINavigationController *aNavController in viewControllers ) 
            if ( index > 3 )  // use long names, look for short names
                if ( [aNavController.tabBarItem.title ieq:@"Short"] ) 
                    aNavController.tabBarItem.title = @"The Long Title";
                
             else  // use short names, look for long names
                if ( [aNavController.tabBarItem.title ieq:@"The Long Title"] ) 
                    aNavController.tabBarItem.title = @"Short";
                
            
            index++;
        
    

【讨论】:

以上是关于当视图在栏上时为 UITabBar 设置单独的标题与更多...?的主要内容,如果未能解决你的问题,请参考以下文章

UITabBar 自定义背景图像应用于一个视图控制器而不是 AppDelegate

UITabBar 去除黑色背景

如何使 UITabbar 透明以便超级视图的背景图像可见?

当 NavigationController 将视图弹出回所述 ViewController 时,UITabBar 消失

在呈现模态视图时显示 UITabBar

如何将 UINavigationController 添加到 UITabBar 应用程序的第一个视图?