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:选择选项卡之前的选项卡栏项目标题的主要内容,如果未能解决你的问题,请参考以下文章