iOS:选择选项卡之前的选项卡栏项目标题

Posted

技术标签:

【中文标题】iOS:选择选项卡之前的选项卡栏项目标题【英文标题】:iOS: Tab bar item title before the tab is selected 【发布时间】:2016-07-19 19:08:08 【问题描述】:

ios 9 中,显示在选项卡中的视图控制器负责它的 tabBarItem。但是选项卡栏控制器仅在需要时为每个选项卡加载视图控制器。所以最初,它只加载选项卡 1 的视图控制器(如果应用程序在第一个选项卡上启动)。因此,除非您为情节提要中的每个选项卡项设置标题,否则只有第一个选项卡显示标题,因为它是当时加载的唯一视图控制器,而其余选项卡仅显示它们的图标(我正在通过故事板,因为图标不需要本地化)。

如何在不通过情节提要的情况下为所有选项卡设置标题?

【问题讨论】:

【参考方案1】:

您可以将所有标题放入数组中,并预设tabBarItem标题:

if let tabTitles = self.tabBarController?.tabBar.items as? [UITabBarItem]
    
        tabTitles[0].title = "Messages"
        tabTitles[1].title = "Contacts"
    

【讨论】:

【参考方案2】:

试试下面的代码希望对你有帮助

// MyTabBarController.h

#import <UIKit/UIKit.h>
@interface MyTabBarController : UITabBarController
@end

// MyTabBarController.m

#import "MyTabBarController.h"
@interface MyTabBarController ()

@end

@implementation MyTabBarController

- (void)viewDidLoad [super viewDidLoad];
[self customizedTabbar];

-(void)customizedTabbar

 UITabBar *tabBar = self.tabBar;
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];

UIImage *img1= [[UIImage imageNamed:@"t1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIImage * img1_sel= [[UIImage imageNamed:@"t1_sel"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

   UIImage *img2= [[UIImage imageNamed:@"t2"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIImage *img2_sel= [[UIImage imageNamed:@"t2_sel"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

 item0 = [item0 initWithTitle:@"Tab1" image:img1 selectedImage:img1_sel];

item1 = [item1 initWithTitle:@"Tab2" image:imag2 selectedImage:img2_sel];
 

谢谢

【讨论】:

以上是关于iOS:选择选项卡之前的选项卡栏项目标题的主要内容,如果未能解决你的问题,请参考以下文章

当用户已经登录另一个选项卡-iOS 时选择选项卡栏时导航另一个屏幕

在更多选项卡上时,iOS 7 选项卡栏图标暂时消失

单击选项卡栏项目时显示覆盖菜单 - IOS

使用 swift Xcode 6 的默认选项卡栏项目颜色

使用 swift Xcode 6 的默认选项卡栏项目颜色

另一个选项卡栏项目中的一个选项卡栏项目中的 PopToRootViewController