繁体   English   中英

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

[英]iOS: Tab bar item title before the tab is selected

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

如何通过情节提要设置所有选项卡的标题?

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

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

尝试下面的代码希望对您有所帮助

// 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];
 }

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM